mirror of
https://github.com/stevenhowes/PakExamples.git
synced 2026-05-26 15:53:41 +01:00
Initial commit of example code for PakGo
This commit is contained in:
@@ -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
|
||||
BIN
Binary file not shown.
@@ -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
|
||||
)
|
||||
@@ -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=
|
||||
@@ -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 {}
|
||||
}
|
||||
Reference in New Issue
Block a user