package cmd import ( "fmt" "kontor-api-gin/internal/config" "log/slog" "os" "github.com/spf13/cobra" "github.com/spf13/viper" ) // rootCmd represents the base command when called without any subcommands var rootCmd = &cobra.Command{ Use: "kontor-cli", TraverseChildren: true, Short: "A brief description of your application", Long: ``, // Uncomment the following line if your bare application // has an action associated with it: Run: func(cmd *cobra.Command, args []string) { cmd.Help() slog.Info("Verbosity level", "level", config.Verbose) }, } func Execute() { if err := rootCmd.Execute(); err != nil { fmt.Fprintf(os.Stderr, "Oops. An error while executing Zero '%s'\n", err) os.Exit(1) } } func init() { rootCmd.PersistentFlags().StringVarP(&config.CfgFile, "config", "c", "/home/tpeetz/.config/kli.yaml", "config file") rootCmd.PersistentFlags().CountVarP(&config.Verbose, "verbose", "v", "increase verbosity (-v, -vv, -vvv)") viper.BindPFlag("config", rootCmd.PersistentFlags().Lookup("config")) exportCmd.Flags().StringVarP(&config.ServerName, "servername", "s", "local", "Define server to get Kontor items") updateTitleCmd.Flags().StringVarP(&config.ServerName, "servername", "s", "local", "Define server to get Kontor items") addLinksCmd.Flags().StringVarP(&config.ServerName, "servername", "s", "local", "Define server to get Kontor items") addLinksCmd.Flags().Var(&config.Mediatype, "mediatype", "MediaType: allowed values are: media, videos, lofi") exportCmd.PersistentFlags().StringVarP(&config.FileName, "file", "f", "/home/tpeetz/.sync/media/data-gin.json", "Filename to store data") importCmd.PersistentFlags().StringVarP(&config.FileName, "file", "f", "/home/tpeetz/.sync/media/data-gin.json", "Filename to import data from") viper.BindPFlag("file", exportCmd.PersistentFlags().Lookup("file")) exportCmd.PersistentFlags().StringVarP(&config.Config.ApiVersion, "api", "a", "api/v1", "API Version") viper.BindPFlag("api", exportCmd.PersistentFlags().Lookup("api")) viper.BindPFlag("server", exportCmd.PersistentFlags().Lookup("server")) cobra.OnInitialize(config.InitCliConfig) }