package main import ( "database/sql" "fmt" "os" "codeflow.dananglin.me.uk/apollo/gator/internal/config" "codeflow.dananglin.me.uk/apollo/gator/internal/database" "codeflow.dananglin.me.uk/apollo/gator/internal/executors" "codeflow.dananglin.me.uk/apollo/gator/internal/state" _ "github.com/lib/pq" ) var ( binaryVersion string buildTime string goVersion string gitCommit string ) func main() { if err := run(); err != nil { fmt.Printf("ERROR: %v.\n", err) os.Exit(1) } } func run() error { cfg, err := config.NewConfig() if err != nil { return fmt.Errorf("unable to load the configuration: %w", err) } db, err := sql.Open("postgres", cfg.DBConfig.URL) if err != nil { return fmt.Errorf("unable to open a connection to the database: %w", err) } s := state.State{ DB: database.New(db), Config: &cfg, } args := os.Args[1:] return executors.Run(&s, args) }