diff --git a/cli/cmd/logs.go b/cli/cmd/logs.go index 07b168b..cd659af 100644 --- a/cli/cmd/logs.go +++ b/cli/cmd/logs.go @@ -1,6 +1,7 @@ package cmd import ( + "errors" "os" "os/exec" @@ -10,13 +11,36 @@ import ( "github.com/spf13/cobra" ) +var logsDescription = "Check Service logs. Requires one Service: " + servicesList() + var LogsCmd = &cobra.Command{ - Use: "logs", - Short: "Check service logs", + Args: func(cmd *cobra.Command, args []string) error { + + if len(args) != 1 { + return errors.New(logsDescription) + } + _, found := controller.Services[args[0]] + if !found { + return errors.New(logsDescription) + } + return nil + }, + Use: "logs ", + Short: logsDescription, + Long: logsDescription, RunE: logs, PreRunE: logsChecks, } +func servicesList() string { + var servicesString string + for key, _ := range controller.Services { + servicesString += key + servicesString += " | " + } + return servicesString[:len(servicesString)-3] +} + func logsChecks(cmd *cobra.Command, args []string) error { datadir, _ := cmd.Flags().GetString("datadir") isLiquidService, _ := cmd.Flags().GetBool("liquid") diff --git a/cli/controller/controller.go b/cli/controller/controller.go index bc7d7fd..3e18a82 100644 --- a/cli/controller/controller.go +++ b/cli/controller/controller.go @@ -9,7 +9,7 @@ import ( "github.com/vulpemventures/nigiri/cli/constants" ) -var services = map[string]bool{ +var Services = map[string]bool{ "node": true, "esplora": true, "electrs": true, @@ -37,7 +37,7 @@ func NewController() (*Controller, error) { return nil, err } c.env = &Env{} - c.parser = newParser(services) + c.parser = newParser(Services) c.docker = dockerClient c.config = &config.Config{} return c, nil