From 68fe7e8406609e0ccc0077f9a9c30a5dc028b625 Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Wed, 26 Apr 2023 19:44:44 +0700 Subject: [PATCH] cmd/ctrld: add "start --no-cd" flag to disable cd mode --- cmd/ctrld/cli.go | 18 ++++++++++++++++-- cmd/ctrld/main.go | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/cmd/ctrld/cli.go b/cmd/ctrld/cli.go index 8dd5298..986623a 100644 --- a/cmd/ctrld/cli.go +++ b/cmd/ctrld/cli.go @@ -37,7 +37,13 @@ import ( "github.com/Control-D-Inc/ctrld/internal/router" ) -const selfCheckFQDN = "verify.controld.com" +const ( + selfCheckFQDN = "verify.controld.com" + cdModeConfigHeader = `# AUTO-GENERATED VIA CD FLAG - DO NOT MODIFY +# TO DISABLE AUTO-GENERATION RUN: ctrld service start --no-cd + +` +) var ( version = "dev" @@ -240,6 +246,7 @@ func initCLI() { runCmd.Flags().StringVarP(&logPath, "log", "", "", "Path to log file") runCmd.Flags().IntVarP(&cacheSize, "cache_size", "", 0, "Enable cache with size items") runCmd.Flags().StringVarP(&cdUID, "cd", "", "", "Control D resolver uid") + runCmd.Flags().BoolVarP(&noCD, "no-cd", "", false, `Disable cd mode, the same effect with --cd=""`) runCmd.Flags().StringVarP(&homedir, "homedir", "", "", "") _ = runCmd.Flags().MarkHidden("homedir") runCmd.Flags().StringVarP(&iface, "iface", "", "", `Update DNS setting for iface, "auto" means the default interface gateway`) @@ -292,6 +299,12 @@ func initCLI() { initLogging() cfg.Service.LogPath = logPath + if noCD { + cdUID = "" + if err := writeConfigFile(); err != nil { + log.Fatalf("failed to overwrite config file with --no-cd: %v", err) + } + } processCDFlags() // Explicitly passing config, so on system where home directory could not be obtained, @@ -349,6 +362,7 @@ func initCLI() { startCmd.Flags().StringVarP(&logPath, "log", "", "", "Path to log file") startCmd.Flags().IntVarP(&cacheSize, "cache_size", "", 0, "Enable cache with size items") startCmd.Flags().StringVarP(&cdUID, "cd", "", "", "Control D resolver uid") + startCmd.Flags().BoolVarP(&noCD, "no-cd", "", false, `Disable cd mode, the same effect with --cd=""`) startCmd.Flags().StringVarP(&iface, "iface", "", "", `Update DNS setting for iface, "auto" means the default interface gateway`) startCmd.Flags().BoolVarP(&setupRouter, "router", "", false, `setup for running on router platforms`) _ = startCmd.Flags().MarkHidden("router") @@ -565,7 +579,7 @@ func writeConfigFile() error { } defer f.Close() if cdUID != "" { - if _, err := f.WriteString("# AUTO-GENERATED VIA CD FLAG - DO NOT MODIFY\n\n"); err != nil { + if _, err := f.WriteString(cdModeConfigHeader); err != nil { return err } } diff --git a/cmd/ctrld/main.go b/cmd/ctrld/main.go index 79a5769..ce38a78 100644 --- a/cmd/ctrld/main.go +++ b/cmd/ctrld/main.go @@ -27,6 +27,7 @@ var ( cfg ctrld.Config verbose int cdUID string + noCD bool iface string ifaceStartStop string setupRouter bool