Initial implementation

This commit is contained in:
2025-12-10 11:10:52 +01:00
parent cff9defc4a
commit 4cb97a25ba
26 changed files with 2714 additions and 1 deletions

49
cmd/chronological/main.go Normal file
View File

@@ -0,0 +1,49 @@
// Package main is the entry point for the Chronological application.
package main
import (
"flag"
"log"
"os"
"github.com/luxick/chronological/internal/config"
"github.com/luxick/chronological/internal/server"
"github.com/luxick/chronological/web"
)
func main() {
configPath := flag.String("config", "config.ini", "Path to configuration file")
flag.Parse()
// Load configuration
cfg, err := config.Load(*configPath)
if err != nil {
log.Printf("Warning: Could not load config file: %v", err)
log.Println("Using default configuration")
cfg = &config.Config{
Server: config.ServerConfig{
Port: 8080,
},
}
}
// Validate configuration
if err := cfg.Validate(); err != nil {
log.Printf("Warning: Configuration validation: %v", err)
}
// Set embedded filesystems from web package
server.TemplatesFS = web.TemplatesFS
server.StaticFS = web.StaticFS
// Create and run server
srv, err := server.New(cfg)
if err != nil {
log.Fatalf("Failed to create server: %v", err)
}
if err := srv.Run(); err != nil {
log.Printf("Server error: %v", err)
os.Exit(1)
}
}