-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathroot.go
More file actions
85 lines (78 loc) · 3.15 KB
/
root.go
File metadata and controls
85 lines (78 loc) · 3.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// Package cmd provides the root command for the Drycc CLI.
/*
Copyright © 2025 NAME HERE <EMAIL ADDRESS>
*/
package cmd
import (
"os"
"time"
"github.com/drycc/workflow-cli/internal/commands"
"github.com/drycc/workflow-cli/internal/parser"
"github.com/drycc/workflow-cli/pkg/i18n"
"github.com/spf13/cobra"
)
// NewDryccCommand creates the root command for the Drycc CLI.
func NewDryccCommand() *cobra.Command {
var flags struct {
config string
version bool
help bool
}
var cmdr commands.DryccCmd
rootCmd := &cobra.Command{
Use: "drycc",
Short: i18n.T("The Drycc command-line client issues API calls to a Drycc controller"),
PersistentPreRun: func(_ *cobra.Command, _ []string) {
cmdr = commands.DryccCmd{ConfigFile: flags.config, WOut: os.Stdout, WErr: os.Stderr, WIn: os.Stdin, Location: time.Local}
},
}
config := "~/.drycc/client.json"
if v, ok := os.LookupEnv("DRYCC_PROFILE"); ok {
config = v
}
rootCmd.PersistentFlags().StringVarP(&flags.config, "config", "c", config, i18n.T("Path to configuration file"))
rootCmd.PersistentFlags().BoolVarP(&flags.help, "help", "h", false, i18n.T("Display help information"))
rootCmd.AddCommand(parser.NewAppsCommand(&cmdr))
rootCmd.AddCommand(parser.NewAuthCommand(&cmdr))
rootCmd.AddCommand(parser.NewAutodeployCommand(&cmdr))
rootCmd.AddCommand(parser.NewAutorollbackCommand(&cmdr))
rootCmd.AddCommand(parser.NewAutoscaleCommand(&cmdr))
rootCmd.AddCommand(parser.NewBuildsCommand(&cmdr))
rootCmd.AddCommand(parser.NewCertsCommand(&cmdr))
rootCmd.AddCommand(parser.NewConfigCommand(&cmdr))
rootCmd.AddCommand(parser.NewDomainsCommand(&cmdr))
rootCmd.AddCommand(parser.NewGatewaysCommand(&cmdr))
rootCmd.AddCommand(parser.NewGitCommand(&cmdr))
rootCmd.AddCommand(parser.NewLifecyclesCommand(&cmdr))
rootCmd.AddCommand(parser.NewHealthchecksCommand(&cmdr))
rootCmd.AddCommand(parser.NewKeysCommand(&cmdr))
rootCmd.AddCommand(parser.NewLabelsCommand(&cmdr))
rootCmd.AddCommand(parser.NewLimitsCommand(&cmdr))
rootCmd.AddCommand(parser.NewPermsCommand(&cmdr))
rootCmd.AddCommand(parser.NewPsCommand(&cmdr))
rootCmd.AddCommand(parser.NewPtsCommand(&cmdr))
rootCmd.AddCommand(parser.NewRegistryCommand(&cmdr))
rootCmd.AddCommand(parser.NewReleasesCommand(&cmdr))
rootCmd.AddCommand(parser.NewResourcesCommand(&cmdr))
rootCmd.AddCommand(parser.NewRoutesCommand(&cmdr))
rootCmd.AddCommand(parser.NewRoutingCommand(&cmdr))
rootCmd.AddCommand(parser.NewServicesCommand(&cmdr))
rootCmd.AddCommand(parser.NewTagsCommand(&cmdr))
rootCmd.AddCommand(parser.NewTimeoutsCommand(&cmdr))
rootCmd.AddCommand(parser.NewTLSCommand(&cmdr))
rootCmd.AddCommand(parser.NewTokensCommand(&cmdr))
rootCmd.AddCommand(parser.NewUpdateCommand(&cmdr))
rootCmd.AddCommand(parser.NewUsersCommand(&cmdr))
rootCmd.AddCommand(parser.NewVolumesCommand(&cmdr))
rootCmd.AddCommand(parser.NewVersionCommand(&cmdr))
// shortcuts
rootCmd.AddGroup(&cobra.Group{ID: "shortcut", Title: i18n.T("Shortcut Commands:")})
for _, shortcuts := range parser.SupportedShortcuts {
for _, shortcut := range shortcuts.Create(&cmdr) {
shortcut.GroupID = "shortcut"
rootCmd.AddCommand(shortcut)
}
}
rootCmd.SilenceUsage = true
return rootCmd
}