refactor: pass rootCmd as parameter to Init*Cmd functions

- Update all Init*Cmd function signatures to accept rootCmd parameter:
  * InitServiceCmd(rootCmd *cobra.Command)
  * InitClientsCmd(rootCmd *cobra.Command)
  * InitLogCmd(rootCmd *cobra.Command)
  * InitUpgradeCmd(rootCmd *cobra.Command)
  * InitRunCmd(rootCmd *cobra.Command)
  * InitInterfacesCmd(rootCmd *cobra.Command)

- Update function calls in cli.go to pass rootCmd parameter
- Update InitInterfacesCmd call in commands_service.go

Benefits:
- Eliminates global state dependency on rootCmd variable
- Makes dependencies explicit in function signatures
- Improves testability by allowing different root commands
- Better encapsulation and modularity
This commit is contained in:
Cuong Manh Le
2025-07-30 17:01:03 +07:00
committed by Cuong Manh Le
parent a61cb1f5bf
commit bfe6060df1
7 changed files with 12 additions and 12 deletions
+5 -5
View File
@@ -127,11 +127,11 @@ func initCLI() {
rootCmd.SetHelpCommand(&cobra.Command{Hidden: true}) rootCmd.SetHelpCommand(&cobra.Command{Hidden: true})
rootCmd.CompletionOptions.HiddenDefaultCmd = true rootCmd.CompletionOptions.HiddenDefaultCmd = true
InitRunCmd() InitRunCmd(rootCmd)
InitServiceCmd() InitServiceCmd(rootCmd)
InitClientsCmd() InitClientsCmd(rootCmd)
InitUpgradeCmd() InitUpgradeCmd(rootCmd)
InitLogCmd() InitLogCmd(rootCmd)
} }
// isMobile reports whether the current OS is a mobile platform. // isMobile reports whether the current OS is a mobile platform.
+1 -1
View File
@@ -109,7 +109,7 @@ func (cc *ClientsCommand) ListClients(cmd *cobra.Command, args []string) error {
} }
// InitClientsCmd creates the clients command with proper logic // InitClientsCmd creates the clients command with proper logic
func InitClientsCmd() *cobra.Command { func InitClientsCmd(rootCmd *cobra.Command) *cobra.Command {
listClientsCmd := &cobra.Command{ listClientsCmd := &cobra.Command{
Use: "list", Use: "list",
Short: "List clients that ctrld discovered", Short: "List clients that ctrld discovered",
+1 -1
View File
@@ -56,7 +56,7 @@ func (ic *InterfacesCommand) ListInterfaces(cmd *cobra.Command, args []string) e
} }
// InitInterfacesCmd creates the interfaces command with proper logic // InitInterfacesCmd creates the interfaces command with proper logic
func InitInterfacesCmd() *cobra.Command { func InitInterfacesCmd(_ *cobra.Command) *cobra.Command {
listInterfacesCmd := &cobra.Command{ listInterfacesCmd := &cobra.Command{
Use: "list", Use: "list",
Short: "List network interfaces", Short: "List network interfaces",
+1 -1
View File
@@ -127,7 +127,7 @@ func (lc *LogCommand) ViewLogs(cmd *cobra.Command, args []string) error {
} }
// InitLogCmd creates the log command with proper logic // InitLogCmd creates the log command with proper logic
func InitLogCmd() *cobra.Command { func InitLogCmd(rootCmd *cobra.Command) *cobra.Command {
lc, err := NewLogCommand() lc, err := NewLogCommand()
if err != nil { if err != nil {
panic(fmt.Sprintf("failed to create log command: %v", err)) panic(fmt.Sprintf("failed to create log command: %v", err))
+1 -1
View File
@@ -22,7 +22,7 @@ func (rc *RunCommand) Run(cmd *cobra.Command, args []string) {
} }
// InitRunCmd creates the run command with proper logic // InitRunCmd creates the run command with proper logic
func InitRunCmd() *cobra.Command { func InitRunCmd(rootCmd *cobra.Command) *cobra.Command {
rc := NewRunCommand() rc := NewRunCommand()
runCmd := &cobra.Command{ runCmd := &cobra.Command{
+2 -2
View File
@@ -69,7 +69,7 @@ func (sc *ServiceCommand) createServiceConfig() *service.Config {
} }
// InitServiceCmd creates the service command with proper logic and aliases // InitServiceCmd creates the service command with proper logic and aliases
func InitServiceCmd() *cobra.Command { func InitServiceCmd(rootCmd *cobra.Command) *cobra.Command {
// Create service command handlers // Create service command handlers
sc := NewServiceCommand() sc := NewServiceCommand()
@@ -141,7 +141,7 @@ NOTE: Uninstalling will set DNS to values provided by DHCP.`,
} }
// Interfaces command - use the existing InitInterfacesCmd function // Interfaces command - use the existing InitInterfacesCmd function
interfacesCmd := InitInterfacesCmd() interfacesCmd := InitInterfacesCmd(rootCmd)
stopCmdAlias := &cobra.Command{ stopCmdAlias := &cobra.Command{
PreRun: func(cmd *cobra.Command, args []string) { PreRun: func(cmd *cobra.Command, args []string) {
+1 -1
View File
@@ -168,7 +168,7 @@ func (uc *UpgradeCommand) Upgrade(cmd *cobra.Command, args []string) error {
} }
// InitUpgradeCmd creates the upgrade command with proper logic // InitUpgradeCmd creates the upgrade command with proper logic
func InitUpgradeCmd() *cobra.Command { func InitUpgradeCmd(rootCmd *cobra.Command) *cobra.Command {
upgradeCmd := &cobra.Command{ upgradeCmd := &cobra.Command{
Use: "upgrade", Use: "upgrade",
Short: "Upgrading ctrld to latest version", Short: "Upgrading ctrld to latest version",