Files
unifood/cmd/root.go

42 lines
985 B
Go

package cmd
import (
"context"
"fmt"
"log/slog"
"os"
"git.bissendorf.co/bissendorf/unifood/m/v2/core/services/jlog"
"github.com/spf13/cobra"
)
var rootCmd = &cobra.Command{
Use: "unifood",
Short: "Unifood is a CLI for retrieving restaurant information",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
},
}
func Execute() {
initRootCmd()
if err := rootCmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}
func initRootCmd() {
var appConfig AppConfig
rootCmd.PersistentFlags().BoolVarP(&appConfig.OutputVerbose, "verbose", "v", false, "Enable verbose output")
rootCmd.PersistentFlags().StringVarP(&appConfig.OutputFormatter, "output", "o", "json", "Set output format")
rootCmd.PersistentFlags().BoolVar(&appConfig.PrintConfig, "print-config", false, "Enable printing the application config")
logger := jlog.New(slog.LevelDebug)
ctx := jlog.ContextWith(context.Background(), logger)
rootCmd.AddCommand(getVerbs(ctx, &appConfig)...)
}