package main import ( "errors" "fmt" "net" "net/http" "os" "path/filepath" ) func mainWithError() error { listenerFile := os.NewFile(uintptr(3), "listener") if listenerFile == nil { return errors.New("FD3 is not open") } listener, err := net.FileListener(listenerFile) if err != nil { return err } if err := os.Chdir(filepath.Dir(filepath.Dir(os.Args[0]))); err != nil { return err } return http.Serve(listener, http.FileServer(http.Dir("public"))) } func main() { if err := mainWithError(); err != nil { fmt.Fprintf(os.Stderr, "%s: error: %v\n", os.Args[0], err) os.Exit(1) } }