mirror of
https://github.com/zrepl/zrepl.git
synced 2024-11-22 00:13:52 +01:00
37 lines
852 B
Go
37 lines
852 B
Go
package client
|
|
|
|
import (
|
|
"encoding/json"
|
|
"github.com/kr/pretty"
|
|
"github.com/spf13/pflag"
|
|
"github.com/zrepl/yaml-config"
|
|
"github.com/zrepl/zrepl/cli"
|
|
"os"
|
|
)
|
|
|
|
var configcheckArgs struct {
|
|
format string
|
|
}
|
|
|
|
var ConfigcheckCmd = &cli.Subcommand{
|
|
Use: "configcheck",
|
|
Short: "check if config can be parsed without errors",
|
|
SetupFlags: func(f *pflag.FlagSet) {
|
|
f.StringVar(&configcheckArgs.format, "format", "", "dump parsed config object [pretty|yaml|json]")
|
|
},
|
|
Run: func(subcommand *cli.Subcommand, args []string) error {
|
|
switch configcheckArgs.format {
|
|
case "pretty":
|
|
_, err := pretty.Println(subcommand.Config())
|
|
return err
|
|
case "json":
|
|
return json.NewEncoder(os.Stdout).Encode(subcommand.Config())
|
|
case "yaml":
|
|
return yaml.NewEncoder(os.Stdout).Encode(subcommand.Config())
|
|
default: // no output
|
|
}
|
|
return nil
|
|
},
|
|
}
|
|
|