package runtime import ( "log/slog" "os" "path/filepath" ) type Environment struct { Version string Codename string Hostname string Port string WorkDir string } func safeGrab(key, fallback string) string { if v, ok := os.LookupEnv(key); ok { return v } return fallback } func GrabEnvironment() Environment { return Environment{ Version: safeGrab("VERSION", "0.0.1"), Codename: safeGrab("CODENAME", "Magical Anomaly"), Hostname: safeGrab("HOSTNAME", "0.0.0.0"), Port: safeGrab("PORT", "8080"), WorkDir: safeGrab("OPERATIONDIR", "."), } } func EnsureOperation(workDir string) error { slog.Info("starting audit on: " + workDir) nDirs := []string{ workDir, filepath.Join(workDir, "content"), filepath.Join(workDir, "content", "fresh"), filepath.Join(workDir, "content", "archive"), filepath.Join(workDir, "web"), } for _, p := range nDirs { if err := os.MkdirAll(p, 0755); err != nil { return err } } return nil }