@@ -14,29 +14,38 @@ import (
1414 "os"
1515)
1616
17+ func startupFatal (code string , err error ) {
18+ msg := err .Error ()
19+ if err == nil {
20+ msg = "unknown error"
21+ }
22+ fmt .Fprintf (os .Stderr , "startup failed (%s): %s\n " , code , msg )
23+ fmt .Fprintf (os .Stderr , "see log/app.log for details\n " )
24+ os .Exit (1 )
25+ }
26+
1727func main () {
1828 debugFlag := flag .Bool ("d" , false , "enable debug logging" )
1929 flag .Parse ()
2030
2131 cfg := config .LoadConfig ()
2232 if err := logger .Init ("." ); err != nil {
23- fmt .Fprintf (os .Stderr , "log init failed: %v\n " , err )
24- os .Exit (1 )
33+ startupFatal ("log_init_failed" , err )
2534 }
2635 logger .SetDebug (* debugFlag )
2736
2837 // PostgreSQL
2938
3039 if err := db .InitPostgres (cfg .PostgresDSN ); err != nil {
3140 logger .Error ("postgres_init_failed" , map [string ]any {"error" : err .Error ()})
32- os . Exit ( 1 )
41+ startupFatal ( "postgres_init_failed" , err )
3342 }
3443 logger .Info ("postgres_connected" , nil )
3544
3645 // Initialize registry
3746 if err := model .InitRegistry (cfg .ModelsDir ); err != nil {
3847 logger .Error ("registry_init_failed" , map [string ]any {"error" : err .Error ()})
39- os . Exit ( 1 )
48+ startupFatal ( "registry_init_failed" , err )
4049 }
4150 model .SetAliasCacheMaxBytes (cfg .AliasCache .MaxBytes )
4251 logger .Info ("models_initialized" , nil )
@@ -52,13 +61,13 @@ func main() {
5261 // Initialize routes
5362 if err := router .InitRoutes (cfg ); err != nil {
5463 logger .Error ("router_init_failed" , map [string ]any {"error" : err .Error ()})
55- os . Exit ( 1 )
64+ startupFatal ( "router_init_failed" , err )
5665 }
5766 // Start HTTP server
5867 logger .Info ("server_start" , map [string ]any {"port" : cfg .Port })
5968 log .Printf ("🚀 Starting server on port %s" , cfg .Port )
6069 if err := http .ListenAndServe (":" + cfg .Port , nil ); err != nil {
6170 logger .Error ("server_error" , map [string ]any {"error" : err .Error ()})
62- os . Exit ( 1 )
71+ startupFatal ( "server_error" , err )
6372 }
6473}
0 commit comments