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 af05cb2d94
commit a2f8313668
7 changed files with 12 additions and 12 deletions

View File

@@ -127,11 +127,11 @@ func initCLI() {
rootCmd.SetHelpCommand(&cobra.Command{Hidden: true})
rootCmd.CompletionOptions.HiddenDefaultCmd = true
InitRunCmd()
InitServiceCmd()
InitClientsCmd()
InitUpgradeCmd()
InitLogCmd()
InitRunCmd(rootCmd)
InitServiceCmd(rootCmd)
InitClientsCmd(rootCmd)
InitUpgradeCmd(rootCmd)
InitLogCmd(rootCmd)
}
// isMobile reports whether the current OS is a mobile platform.

View File

@@ -109,7 +109,7 @@ func (cc *ClientsCommand) ListClients(cmd *cobra.Command, args []string) error {
}
// InitClientsCmd creates the clients command with proper logic
func InitClientsCmd() *cobra.Command {
func InitClientsCmd(rootCmd *cobra.Command) *cobra.Command {
listClientsCmd := &cobra.Command{
Use: "list",
Short: "List clients that ctrld discovered",

View File

@@ -56,7 +56,7 @@ func (ic *InterfacesCommand) ListInterfaces(cmd *cobra.Command, args []string) e
}
// InitInterfacesCmd creates the interfaces command with proper logic
func InitInterfacesCmd() *cobra.Command {
func InitInterfacesCmd(_ *cobra.Command) *cobra.Command {
listInterfacesCmd := &cobra.Command{
Use: "list",
Short: "List network interfaces",

View File

@@ -127,7 +127,7 @@ func (lc *LogCommand) ViewLogs(cmd *cobra.Command, args []string) error {
}
// InitLogCmd creates the log command with proper logic
func InitLogCmd() *cobra.Command {
func InitLogCmd(rootCmd *cobra.Command) *cobra.Command {
lc, err := NewLogCommand()
if err != nil {
panic(fmt.Sprintf("failed to create log command: %v", err))

View File

@@ -22,7 +22,7 @@ func (rc *RunCommand) Run(cmd *cobra.Command, args []string) {
}
// InitRunCmd creates the run command with proper logic
func InitRunCmd() *cobra.Command {
func InitRunCmd(rootCmd *cobra.Command) *cobra.Command {
rc := NewRunCommand()
runCmd := &cobra.Command{

View File

@@ -69,7 +69,7 @@ func (sc *ServiceCommand) createServiceConfig() *service.Config {
}
// 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
sc := NewServiceCommand()
@@ -141,7 +141,7 @@ NOTE: Uninstalling will set DNS to values provided by DHCP.`,
}
// Interfaces command - use the existing InitInterfacesCmd function
interfacesCmd := InitInterfacesCmd()
interfacesCmd := InitInterfacesCmd(rootCmd)
stopCmdAlias := &cobra.Command{
PreRun: func(cmd *cobra.Command, args []string) {

View File

@@ -168,7 +168,7 @@ func (uc *UpgradeCommand) Upgrade(cmd *cobra.Command, args []string) error {
}
// InitUpgradeCmd creates the upgrade command with proper logic
func InitUpgradeCmd() *cobra.Command {
func InitUpgradeCmd(rootCmd *cobra.Command) *cobra.Command {
upgradeCmd := &cobra.Command{
Use: "upgrade",
Short: "Upgrading ctrld to latest version",