diff --git a/src/main.go b/src/main.go index da95983..1fc9140 100644 --- a/src/main.go +++ b/src/main.go @@ -102,6 +102,40 @@ func main() { f.Close() } + + staticFiles, err := filepath.Glob(*staticDir + "/**") + if err != nil { + log.Fatalf("could not get all static files from '%s': %s", *staticDir, err) + } + buf := []byte{} + for _, fileName := range staticFiles { + filePath := path.Join(*outputDir, fileName) + dir := path.Dir(filePath) + isDir := false + if info, err := os.Stat(fileName); err != nil { + log.Fatalf("could not stat file '%s': %s", fileName, err) + } else { + isDir = info.IsDir() + if isDir { + dir = filePath + } + } + if _, found := dirsCreated[dir]; !found { + if err := os.MkdirAll(dir, 0755); err != nil { + log.Fatalf("could not create directory '%s': %s", dir, err) + } + } + if isDir { + continue + } + buf, err = os.ReadFile(fileName) + if err != nil { + log.Fatalf("could not read static file '%s': %s", fileName, err) + } + if err := os.WriteFile(path.Join(*outputDir, fileName), buf, 0755); err != nil { + log.Fatalf("could not write static file '%s': %s", fileName, err) + } + } } if *listen != "" {