53 lines
978 B
Go
53 lines
978 B
Go
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
|
|
}
|