itUse switch/case to handle built-in commands - scoreboard - Interactive scoreboard for CTF-like games Err z3bra.org 70 hgit clone git://git.z3bra.org/scoreboard.git URL:git://git.z3bra.org/scoreboard.git z3bra.org 70 1Log /scm/scoreboard/log.gph z3bra.org 70 1Files /scm/scoreboard/files.gph z3bra.org 70 1Refs /scm/scoreboard/refs.gph z3bra.org 70 i--- Err z3bra.org 70 1commit 8a7650dfacce3928c15355cff32ba81179141352 /scm/scoreboard/commit/8a7650dfacce3928c15355cff32ba81179141352.gph z3bra.org 70 1parent 307cde02b7be14d34c37e7f02eeaea907d1c0d84 /scm/scoreboard/commit/307cde02b7be14d34c37e7f02eeaea907d1c0d84.gph z3bra.org 70 hAuthor: Willy Goiffon URL:mailto:contact@z3bra.org z3bra.org 70 iDate: Thu, 26 Sep 2024 10:54:40 +0200 Err z3bra.org 70 i Err z3bra.org 70 iUse switch/case to handle built-in commands Err z3bra.org 70 i Err z3bra.org 70 iDiffstat: Err z3bra.org 70 i M main.go | 27 +++++++++++++++++---------- Err z3bra.org 70 i Err z3bra.org 70 i1 file changed, 17 insertions(+), 10 deletions(-) Err z3bra.org 70 i--- Err z3bra.org 70 1diff --git a/main.go b/main.go /scm/scoreboard/file/main.go.gph z3bra.org 70 it@@ -182,15 +182,21 @@ func main() { Err z3bra.org 70 i Err z3bra.org 70 i if len(args) > 1 { Err z3bra.org 70 i usage() Err z3bra.org 70 i- } else if len(args) == 1 { Err z3bra.org 70 i- if args[0] == "help" { Err z3bra.org 70 i+ } Err z3bra.org 70 i+ if len(args) == 0 { Err z3bra.org 70 i+ scoreboard.pages.SwitchToPage("board") Err z3bra.org 70 i+ scoreboard.DrawBoard() Err z3bra.org 70 i+ } Err z3bra.org 70 i+ Err z3bra.org 70 i+ if len(args) == 1 { Err z3bra.org 70 i+ switch args[0] { Err z3bra.org 70 i+ case "help": Err z3bra.org 70 i usage() Err z3bra.org 70 i- } Err z3bra.org 70 i- if args[0] == "refresh" { Err z3bra.org 70 i+ case "refresh": Err z3bra.org 70 i scoreboard.GenerateHTML() Err z3bra.org 70 i os.Exit(0) Err z3bra.org 70 i- } Err z3bra.org 70 i- if args[0] == "register" { Err z3bra.org 70 i+ Err z3bra.org 70 i+ case "register": Err z3bra.org 70 i scoreboard.player.flag = 0 Err z3bra.org 70 i scoreboard.player.score = 0 Err z3bra.org 70 i scoreboard.player.ts = time.Now().Unix() Err z3bra.org 70 it@@ -198,7 +204,9 @@ func main() { Err z3bra.org 70 i rank, _ := db_count_players(scoreboard.db) Err z3bra.org 70 i scoreboard.NewPlayer(rank + 1) Err z3bra.org 70 i scoreboard.pages.SwitchToPage("board") Err z3bra.org 70 i- } else { Err z3bra.org 70 i+ Err z3bra.org 70 i+ /* anything not a command is treated as a flag */ Err z3bra.org 70 i+ default: Err z3bra.org 70 i if flagid(args[0]) < 0 { Err z3bra.org 70 i fmt.Println("Incorrect flag") Err z3bra.org 70 i return Err z3bra.org 70 it@@ -206,16 +214,15 @@ func main() { Err z3bra.org 70 i scoreboard.flag = args[0] Err z3bra.org 70 i scoreboard.pages.SwitchToPage("token") Err z3bra.org 70 i } Err z3bra.org 70 i- } else { Err z3bra.org 70 i- scoreboard.pages.SwitchToPage("board") Err z3bra.org 70 i- scoreboard.DrawBoard() Err z3bra.org 70 i } Err z3bra.org 70 i Err z3bra.org 70 i+ /* Run application */ Err z3bra.org 70 i if err := scoreboard.app.SetRoot(scoreboard.pages, true).EnableMouse(true).Run(); err != nil { Err z3bra.org 70 i fmt.Println(err) Err z3bra.org 70 i os.Exit(1) Err z3bra.org 70 i } Err z3bra.org 70 i Err z3bra.org 70 i+ /* Print a token reminder on exit in case one has been generated or provided */ Err z3bra.org 70 i if scoreboard.player.token != "" { Err z3bra.org 70 i fmt.Printf(TOKEN_REMINDER, scoreboard.player.name, scoreboard.player.token) Err z3bra.org 70 i } Err z3bra.org 70 .