Files
packets/cmd/http/httpsocket.go
2025-08-02 13:57:24 -03:00

38 lines
793 B
Go

package main
import (
"fmt"
"log"
"net/http"
"os"
"path/filepath"
"packets/internal"
"github.com/BurntSushi/toml"
)
type ConfigTOML struct {
Config struct {
DefaultHttpPort int `toml:"httpPort"`
DefaultCacheDir string `toml:"cacheDir"`
} `toml:"Config"`
}
func main() {
internal.PacketsPackageDir()
var cfg ConfigTOML
toml.Decode(filepath.Join(internal.PacketsPackageDir(), "config.toml"), &cfg)
pid := os.Getpid()
if err := os.WriteFile(filepath.Join(internal.PacketsPackageDir(), "http.pid"), []byte(fmt.Sprint(pid)), 0644); err != nil {
fmt.Println("error saving subprocess pid", err)
}
fs := http.FileServer(http.Dir(cfg.Config.DefaultCacheDir))
http.Handle("/", fs)
log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", cfg.Config.DefaultHttpPort), nil))
}