@@ -2,6 +2,7 @@ package global
22
33import (
44 "encoding/json"
5+ "flag"
56 "fmt"
67 "io/fs"
78 "math/rand/v2"
5253 LocalPlayerName : "Player" ,
5354 }
5455
56+ colorEnabled = false
57+
5558 GameTicksPerSecond = 20
5659
5760 // Global RNG for unimportant or non-networked RNG
@@ -67,6 +70,13 @@ func GlobalInit(files fs.FS, shouldLog bool) {
6770 configDir := DefaultConfigDir ()
6871 configFilepath := DefaultConfigLocation ()
6972
73+ debugFlag := flag .Bool ("debug" , false , "Turns on debug mode" )
74+ colorFlag := flag .Bool ("color" , false , "Turns on color output for logging. Should only be used for terminal tools like cat and tail." )
75+
76+ flag .Parse ()
77+
78+ colorEnabled = * colorFlag
79+
7080 // Basic logging for config debugging
7181 initLogger = zerolog .New (zerolog.ConsoleWriter {Out : os .Stdout }).With ().Timestamp ().Logger ()
7282
@@ -106,8 +116,10 @@ func GlobalInit(files fs.FS, shouldLog bool) {
106116 Opt = config
107117 }
108118
119+ enableDebug := * debugFlag || Opt .Debug
120+
109121 level := zerolog .InfoLevel
110- if Opt . Debug {
122+ if enableDebug {
111123 level = zerolog .DebugLevel
112124 }
113125
@@ -120,7 +132,9 @@ func GlobalInit(files fs.FS, shouldLog bool) {
120132
121133 // Main global logger
122134 log .Logger = createLogger (configDir , level )
123- golurk .SetInternalLogger (zerologr .New (& log .Logger ))
135+ if enableDebug {
136+ golurk .SetInternalLogger (zerologr .New (& log .Logger ))
137+ }
124138
125139 errs := golurk .DefaultLoader (files )
126140 if len (errs ) > 0 {
@@ -169,8 +183,8 @@ func populateConfig(config GlobalConfig) GlobalConfig {
169183
170184func createFileWriter (configDir string ) zerolog.ConsoleWriter {
171185 rollingWriter := NewRollingFileWriter (filepath .Join (configDir , "logs/" ), "gokemon" )
172- // TODO: Make custom formatter. ConsoleWriter ends up printing out console format codes (obviously) that look bad in a text editor
173- return zerolog.ConsoleWriter {Out : rollingWriter }
186+ // TODO: Add toggle flag for color output
187+ return zerolog.ConsoleWriter {Out : rollingWriter , NoColor : ! colorEnabled }
174188}
175189
176190func createLogger (configDir string , level zerolog.Level ) zerolog.Logger {
0 commit comments