stillbox/cmd/gordio/main.go

48 lines
1,020 B
Go
Raw Normal View History

2024-07-14 13:47:48 -04:00
package main
import (
"os"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"dynatron.me/x/stillbox/pkg/gordio"
2024-07-14 17:39:03 -04:00
"dynatron.me/x/stillbox/pkg/gordio/admin"
2024-07-14 13:47:48 -04:00
"dynatron.me/x/stillbox/pkg/gordio/config"
"github.com/spf13/cobra"
)
func main() {
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})
rootCmd := cobra.Command{
Use: gordio.AppName,
}
2024-07-15 22:30:32 -04:00
rootCmd.PersistentFlags().StringP("config", "c", "config.yaml", "config file")
err := rootCmd.ParseFlags(os.Args)
if err != nil {
log.Fatal().Err(err).Msg("parsing flags")
}
cfgPath, err := rootCmd.PersistentFlags().GetString("config")
if err != nil {
log.Fatal().Err(err).Msg("failed parsing config path")
}
2024-07-14 13:47:48 -04:00
2024-07-15 22:30:32 -04:00
cfg, err := config.ReadConfig(config.WithConfigPath(cfgPath))
2024-07-14 13:47:48 -04:00
if err != nil {
log.Fatal().Err(err).Msg("Config read failed")
}
2024-07-14 21:26:53 -04:00
cmds := append([]*cobra.Command{gordio.Command(cfg)}, admin.Command(cfg)...)
rootCmd.AddCommand(cmds...)
2024-07-14 13:47:48 -04:00
err = rootCmd.Execute()
if err != nil {
log.Fatal().Err(err).Msg("Dying")
}
}