From 8155bf6343f02fc25df49ee76f0d9054c4692eb0 Mon Sep 17 00:00:00 2001 From: George Dunlap Date: Mon, 30 Oct 2017 12:33:25 +0000 Subject: [PATCH] main: Clean up command demuxer Minimize changing of variables by setting loadConfig to 'true', and only disabling it for "repo init", setting loadXSA to true for all 'xsanum' commands, and using 'switch' rather than 'else'. This also fixes a bug where an unknown 'target' would cause xsatool to dereference nil. Signed-off-by: George Dunlap --- main.go | 76 +++++++++++++++++++++++---------------------------------- 1 file changed, 31 insertions(+), 45 deletions(-) diff --git a/main.go b/main.go index 3c71c84..ce90acc 100644 --- a/main.go +++ b/main.go @@ -94,7 +94,7 @@ func XsaMain(args []string) int { var err error var xsanum int - loadConfig := false + loadConfig := true loadGlobal := false loadXSA := false @@ -103,75 +103,61 @@ func XsaMain(args []string) int { args = args[3:] if xsanum, err = strconv.Atoi(tgt); err == nil { + // Always load the XSA, even for 'init' + loadXSA = true switch cmd { case "init": main = MainInit - loadConfig = true loadGlobal = true - loadXSA = true case "sync-patches": main = MainSyncPatches - loadConfig = true - loadXSA = true case "backport": main = MainBackport - loadConfig = true - loadXSA = true case "sync-branch": main = MainSyncBranch - loadConfig = true - loadXSA = true case "test-apply": main = MainTestApply - loadConfig = true - loadXSA = true case "test-build": main = MainTestBuild - loadConfig = true - loadXSA = true case "test": main = MainTest - loadConfig = true - loadXSA = true case "reset-base": main = MainResetBase - loadConfig = true - loadXSA = true case "set-patches": main = MainSetPatches - loadConfig = true - loadXSA = true default: fmt.Printf("Unknown command: %s\n", cmd) return 1 } - } else if tgt == "repo" { - switch cmd { - case "init": - main = MainRepoInit - case "update": - main = MainRepoUpdate - loadConfig = true - case "x": - main = MainRepoX - loadConfig = true - case "info": - loadConfig = true - main = MainRepoInfo - default: - fmt.Printf("Unknown command: %s\n", cmd) - return 1 - } - } else if tgt == "global" { - switch cmd { - case "update": - main = MainGlobalUpdate - loadConfig = true - case "info": - loadGlobal = true - main = MainGlobalInfo + } else { + switch tgt { + case "repo": + switch cmd { + case "init": + main = MainRepoInit + loadConfig = false + case "update": + main = MainRepoUpdate + case "x": + main = MainRepoX + case "info": + main = MainRepoInfo + default: + fmt.Printf("Unknown command: %s\n", cmd) + return 1 + } + case "global": + switch cmd { + case "update": + main = MainGlobalUpdate + case "info": + main = MainGlobalInfo + default: + fmt.Printf("Unknown command: %s\n", cmd) + return 1 + } default: - fmt.Printf("Unknown command: %s\n", cmd) + fmt.Printf("Unknown target: %s\n", tgt) return 1 } } -- 2.39.5