Lorenz Brun | 6adf884 | 2021-10-05 13:39:11 +0200 | [diff] [blame] | 1 | package main |
| 2 | |
| 3 | import ( |
Mateusz Zalega | 8234c16 | 2022-07-08 17:05:50 +0200 | [diff] [blame^] | 4 | "path/filepath" |
| 5 | |
| 6 | "github.com/adrg/xdg" |
Lorenz Brun | 6adf884 | 2021-10-05 13:39:11 +0200 | [diff] [blame] | 7 | "github.com/spf13/cobra" |
| 8 | ) |
| 9 | |
| 10 | // rootCmd represents the base command when called without any subcommands |
| 11 | var rootCmd = &cobra.Command{ |
| 12 | Use: "metroctl", |
| 13 | Short: "metroctl controls Metropolis nodes and clusters.", |
| 14 | } |
| 15 | |
Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 16 | type metroctlFlags struct { |
| 17 | // clusterEndpoints is a list of the targeted cluster's endpoints, used by |
| 18 | // commands that perform RPC on it. |
| 19 | clusterEndpoints []string |
Mateusz Zalega | f777496 | 2022-07-08 12:26:55 +0200 | [diff] [blame] | 20 | // proxyAddr is a SOCKS5 proxy address the cluster will be accessed through. |
| 21 | proxyAddr string |
Mateusz Zalega | 8234c16 | 2022-07-08 17:05:50 +0200 | [diff] [blame^] | 22 | // configPath overrides the default XDG config path |
| 23 | configPath string |
Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 24 | } |
| 25 | |
| 26 | var flags metroctlFlags |
| 27 | |
| 28 | func init() { |
| 29 | rootCmd.PersistentFlags().StringArrayVar(&flags.clusterEndpoints, "endpoints", nil, "A list of the target cluster's endpoints.") |
Mateusz Zalega | f777496 | 2022-07-08 12:26:55 +0200 | [diff] [blame] | 30 | rootCmd.PersistentFlags().StringVar(&flags.proxyAddr, "proxy", "", "SOCKS5 proxy address") |
Mateusz Zalega | 8234c16 | 2022-07-08 17:05:50 +0200 | [diff] [blame^] | 31 | rootCmd.PersistentFlags().StringVar(&flags.configPath, "config", filepath.Join(xdg.ConfigHome, "metroctl"), "An alternative cluster config path") |
Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 32 | } |
| 33 | |
Lorenz Brun | 6adf884 | 2021-10-05 13:39:11 +0200 | [diff] [blame] | 34 | func main() { |
| 35 | cobra.CheckErr(rootCmd.Execute()) |
| 36 | } |