Initial commit of example code for PakGo

This commit is contained in:
stevenhowes
2022-01-13 22:20:08 +00:00
commit 0bf58dba2b
6 changed files with 92 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
.DEFAULT_GOAL := build
fmt:
go mod tidy
go fmt ./...
.PHONY:fmt
lint: fmt
golint ./...
.PHONY:lint
vet: fmt
go vet ./...
.PHONY:vet
build: vet
go build
.PHONY:build
+1
View File
@@ -0,0 +1 @@
Docs coming in next couple of days..
BIN
View File
Binary file not shown.
+10
View File
@@ -0,0 +1,10 @@
module github.com/stevenhowes/PakExamples
go 1.17
replace github.com/stevenhowes/PakGo => ./PakGo
require (
github.com/gorilla/mux v1.8.0
github.com/stevenhowes/PakGo v0.0.0-00010101000000-000000000000
)
+2
View File
@@ -0,0 +1,2 @@
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
+61
View File
@@ -0,0 +1,61 @@
package main
import (
"fmt"
"net/http"
"github.com/gorilla/mux"
"github.com/stevenhowes/PakGo"
)
var pak PakGo.PakFile
func thing(w http.ResponseWriter, req *http.Request) {
out, err := pak.ReadFile(req.URL.String()[1:])
if err != nil {
w.WriteHeader(http.StatusNotFound)
w.Write([]byte("404 page not found"))
} else {
w.Write(out)
}
}
func main() {
pak0, err := PakGo.PakLoad("example.pak")
if err != nil {
panic(err)
}
defer pak0.PakClose()
pak = pak0
fmt.Println("--------")
out, err := pak0.ReadFile("folder1/file1.txt")
if err != nil {
panic(err)
}
fmt.Println(string(out))
fmt.Println("--------")
out, err = pak0.ReadFile("file2.txt")
if err != nil {
panic(err)
}
fmt.Println(string(out))
fmt.Println("--------")
rtr := mux.NewRouter()
rtr.HandleFunc("/file2.txt", thing).Methods("GET")
rtr.HandleFunc("/folder1/file1.txt", thing).Methods("GET")
rtr.HandleFunc("/invalid.txt", thing).Methods("GET")
//rtr.PathPrefix("/").Handler(http.FileServer( **TODO: :)** ))
http.ListenAndServe("127.0.0.1:8881", rtr)
select {}
}