Deployment and lifecycle management for Nix
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

client-go: add zerolog structured logger

+46 -6
+23 -4
client-go/main.go
··· 2 2 3 3 import ( 4 4 "fmt" 5 - "log" 5 + "net/url" 6 6 "os" 7 7 8 8 "github.com/knadh/koanf/parsers/toml/v2" 9 9 "github.com/knadh/koanf/providers/file" 10 10 "github.com/knadh/koanf/providers/posflag" 11 11 "github.com/knadh/koanf/v2" 12 + "github.com/rs/zerolog" 13 + "github.com/rs/zerolog/log" 12 14 13 15 flag "github.com/spf13/pflag" 14 16 ) ··· 18 20 var kConfig = koanf.NewWithConf(conf) 19 21 20 22 func main() { 23 + log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr}) 24 + 21 25 flags := flag.NewFlagSet("config", flag.ExitOnError) 22 26 flags.Usage = func() { 23 27 fmt.Println(flags.FlagUsages()) 24 28 os.Exit(0) 25 29 } 26 30 flags.StringSlice("config", []string{"./dev-client.toml"}, "path to one or more toml config files") 31 + flags.Bool("debug", false, "enable debug logging") 27 32 flags.Parse(os.Args[1:]) 28 33 29 34 // load config files 30 35 configFiles, _ := flags.GetStringSlice("config") 31 36 for _, c := range configFiles { 32 37 if err := kConfig.Load(file.Provider(c), toml.Parser()); err != nil { 33 - log.Fatalf("error loading file: %v", err) 38 + log.Error().Err(err).Msg("error loading config file") 39 + os.Exit(1) 34 40 } 35 41 } 36 42 37 43 // load cli args 38 44 if err := kConfig.Load(posflag.Provider(flags, ".", kConfig), nil); err != nil { 39 - log.Fatalf("error loading config: %v", err) 45 + log.Error().Err(err).Msg("error parsing arguments") 46 + os.Exit(1) 47 + } 48 + 49 + zerolog.SetGlobalLevel(zerolog.InfoLevel) 50 + if kConfig.Bool("debug") { 51 + zerolog.SetGlobalLevel(zerolog.DebugLevel) 40 52 } 53 + run(kConfig) 54 + } 41 55 42 - fmt.Println(kConfig) 56 + func run(kConfig *koanf.Koanf) { 57 + log.Info().Msg("Starting") 58 + log.Debug().Any("config", kConfig).Msg("") 59 + 60 + endPoint, _ := url.Parse(fmt.Sprintf("%s/client/websocket", kConfig.String("url"))) 61 + log.Debug().Any("endpoint", endPoint).Msg("") 43 62 }
+1 -1
dev-client.toml
··· 1 - url = "http://localhost:4000" 1 + url = "ws://localhost:4000" 2 2 name = "blank" 3 3 type = "home-manager"
+4
flake.nix
··· 60 60 61 61 # go 62 62 pkgs.go_1_22 63 + pkgs.delve 63 64 pkgs.gopls 64 65 65 66 # rust ··· 94 95 pkgs.libiconv 95 96 pkgs.darwin.apple_sdk.frameworks.SystemConfiguration 96 97 ]; 98 + 99 + # og delve fix 100 + hardeningDisable = [ "fortify" ]; 97 101 98 102 shellHook = '' 99 103 export BINDGEN_EXTRA_CLANG_ARGS="$(< ${pkgs.stdenv.cc}/nix-support/libc-crt1-cflags) \
+4 -1
go.mod
··· 7 7 github.com/knadh/koanf/providers/file v1.0.0 8 8 github.com/knadh/koanf/providers/posflag v0.1.0 9 9 github.com/knadh/koanf/v2 v2.1.1 10 + github.com/rs/zerolog v1.33.0 11 + github.com/spf13/pflag v1.0.5 10 12 ) 11 13 12 14 require ( 13 15 github.com/fsnotify/fsnotify v1.7.0 // indirect 14 16 github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect 15 17 github.com/knadh/koanf/maps v0.1.1 // indirect 18 + github.com/mattn/go-colorable v0.1.13 // indirect 19 + github.com/mattn/go-isatty v0.0.19 // indirect 16 20 github.com/mitchellh/copystructure v1.2.0 // indirect 17 21 github.com/mitchellh/reflectwalk v1.0.2 // indirect 18 22 github.com/pelletier/go-toml/v2 v2.2.2 // indirect 19 - github.com/spf13/pflag v1.0.5 // indirect 20 23 golang.org/x/sys v0.21.0 // indirect 21 24 )
+14
go.sum
··· 1 + github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= 1 2 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 2 3 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 3 4 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= ··· 5 6 github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= 6 7 github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 h1:TQcrn6Wq+sKGkpyPvppOz99zsMBaUOKXq6HSv655U1c= 7 8 github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= 9 + github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= 8 10 github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NIs= 9 11 github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= 10 12 github.com/knadh/koanf/parsers/toml/v2 v2.1.0 h1:EUdIKIeezfDj6e1ABDhIjhbURUpyrP1HToqW6tz8R0I= ··· 15 17 github.com/knadh/koanf/providers/posflag v0.1.0/go.mod h1:SYg03v/t8ISBNrMBRMlojH8OsKowbkXV7giIbBVgbz0= 16 18 github.com/knadh/koanf/v2 v2.1.1 h1:/R8eXqasSTsmDCsAyYj+81Wteg8AqrV9CP6gvsTsOmM= 17 19 github.com/knadh/koanf/v2 v2.1.1/go.mod h1:4mnTRbZCK+ALuBXHZMjDfG9y714L7TykVnZkXbMU3Es= 20 + github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= 21 + github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= 22 + github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= 23 + github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= 24 + github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= 18 25 github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= 19 26 github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= 20 27 github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= 21 28 github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= 22 29 github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= 23 30 github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= 31 + github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 24 32 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 25 33 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 34 + github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= 35 + github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= 36 + github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= 26 37 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= 27 38 github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= 28 39 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= ··· 34 45 github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= 35 46 github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= 36 47 github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 48 + golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 49 + golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 50 + golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 37 51 golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= 38 52 golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 39 53 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=