From 5af9c9d46e628303e9d03906e249b881e0e664c6 Mon Sep 17 00:00:00 2001 From: mzz2017 <2017@duck.com> Date: Sat, 4 Feb 2023 22:21:27 +0800 Subject: [PATCH] feat: add validate command --- cmd/cmd.go | 19 +------------------ cmd/run.go | 4 ++-- cmd/validate.go | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 20 deletions(-) create mode 100644 cmd/validate.go diff --git a/cmd/cmd.go b/cmd/cmd.go index 30f9467..465c8d6 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -1,7 +1,6 @@ package cmd import ( - "github.com/sirupsen/logrus" "github.com/spf13/cobra" ) @@ -25,21 +24,5 @@ func Execute() error { func init() { rootCmd.AddCommand(runCmd) -} - -func NewLogger(verbose int) *logrus.Logger { - log := logrus.New() - - var level logrus.Level - switch verbose { - case 0: - level = logrus.WarnLevel - case 1: - level = logrus.InfoLevel - default: - level = logrus.TraceLevel - } - log.SetLevel(level) - - return log + rootCmd.AddCommand(validateCmd) } diff --git a/cmd/run.go b/cmd/run.go index 52bde0c..ae377bc 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -45,7 +45,7 @@ func Run(log *logrus.Logger) (err error) { internal.AutoSu() // Read config from --config cfgFile. - param, err := readConfig() + param, err := readConfig(cfgFile) if err != nil { return fmt.Errorf("readConfig: %w", err) } @@ -100,7 +100,7 @@ func Run(log *logrus.Logger) (err error) { return nil } -func readConfig() (params *config.Params, err error) { +func readConfig(cfgFile string) (params *config.Params, err error) { b, err := os.ReadFile(cfgFile) if err != nil { return nil, err diff --git a/cmd/validate.go b/cmd/validate.go new file mode 100644 index 0000000..b7530fb --- /dev/null +++ b/cmd/validate.go @@ -0,0 +1,36 @@ +/* + * SPDX-License-Identifier: AGPL-3.0-only + * Copyright (c) since 2023, mzz2017 + */ + +package cmd + +import ( + "fmt" + "github.com/sirupsen/logrus" + "github.com/spf13/cobra" + "os" +) + +var ( + validateCmd = &cobra.Command{ + Use: "validate", + Short: "Validate dae config", + Run: func(cmd *cobra.Command, args []string) { + if cfgFile == "" { + logrus.Fatalln("Argument \"--config\" or \"-c\" is required but not provided.") + } + // Read config from --config cfgFile. + _, err := readConfig(cfgFile) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + fmt.Println("OK") + }, + } +) + +func init() { + validateCmd.PersistentFlags().StringVarP(&cfgFile, "config", "c", "", "config file") +}