38 lines
		
	
	
		
			793 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			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))
 | 
						|
}
 |