From fb653292612eddca5b088ed88466c546d1597107 Mon Sep 17 00:00:00 2001 From: Elizabeth Alexander Hunt Date: Sat, 20 Jun 2026 09:40:07 -0700 Subject: Initial commit --- main.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 main.go (limited to 'main.go') diff --git a/main.go b/main.go new file mode 100644 index 0000000..5d6f599 --- /dev/null +++ b/main.go @@ -0,0 +1,51 @@ +package main + +import ( + "log" + + "github.com/joho/godotenv" + + "penguins.lan/api" + "penguins.lan/args" + "penguins.lan/database" + "penguins.lan/scheduled" +) + +func main() { + log.SetFlags(log.LstdFlags | log.Lshortfile) + + if err := godotenv.Load(); err != nil { + log.Println("no .env file loaded:", err) + } + + argv, err := args.GetArgs() + if err != nil { + log.Fatal(err) + } + + dbConn := database.MakeConn(&argv.DatabasePath) + defer dbConn.Close() + + if argv.Migrate { + if _, err := database.Migrate(dbConn); err != nil { + log.Fatal(err) + } + log.Println("database migrated successfully") + } + + if argv.Scheduler { + scheduled.StartScheduler(argv, dbConn) + log.Println("scheduler started") + } + + if argv.Server { + server := api.MakeServer(argv, dbConn) + log.Printf("listening on :%d", argv.Port) + + if err := server.ListenAndServe(); err != nil { + log.Fatal(err) + } + } + + select {} +} -- cgit v1.3