add installer alpha version

This commit is contained in:
2025-12-15 16:38:20 +07:00
parent 732e5aca11
commit b4ef76f0d0
23 changed files with 4279 additions and 136 deletions

View File

@@ -55,11 +55,40 @@ type App struct {
}
func New(cfg Config) (*App, error) {
// Resolve paths relative to executable or current working directory
if cfg.TemplatesDir == "" {
cfg.TemplatesDir = "web/templates"
// Try multiple locations for templates
possiblePaths := []string{
"web/templates",
"./web/templates",
"/opt/atlas/web/templates",
}
for _, path := range possiblePaths {
if _, err := os.Stat(path); err == nil {
cfg.TemplatesDir = path
break
}
}
if cfg.TemplatesDir == "" {
cfg.TemplatesDir = "web/templates" // Default fallback
}
}
if cfg.StaticDir == "" {
cfg.StaticDir = "web/static"
// Try multiple locations for static files
possiblePaths := []string{
"web/static",
"./web/static",
"/opt/atlas/web/static",
}
for _, path := range possiblePaths {
if _, err := os.Stat(path); err == nil {
cfg.StaticDir = path
break
}
}
if cfg.StaticDir == "" {
cfg.StaticDir = "web/static" // Default fallback
}
}
tmpl, err := parseTemplates(cfg.TemplatesDir)
@@ -228,6 +257,12 @@ func parseTemplates(dir string) (*template.Template, error) {
funcs := template.FuncMap{
"nowRFC3339": func() string { return time.Now().Format(time.RFC3339) },
"getContentTemplate": func(data map[string]any) string {
if ct, ok := data["ContentTemplate"].(string); ok && ct != "" {
return ct
}
return "content"
},
}
t := template.New("root").Funcs(funcs)