master
1package cmd
2
3import (
4 "log/slog"
5 "os"
6
7 "github.com/kahnwong/swissknife/cmd/generate"
8 "github.com/kahnwong/swissknife/cmd/get"
9 "github.com/rs/zerolog"
10 slogzerolog "github.com/samber/slog-zerolog/v2"
11 "github.com/spf13/cobra"
12)
13
14var (
15 version = "dev"
16)
17
18var rootCmd = &cobra.Command{
19 Use: "swissknife",
20 Version: version,
21 Short: "Various utils",
22 Long: `Various utils`,
23 SilenceErrors: true,
24}
25
26func Execute() {
27 err := rootCmd.Execute()
28 if err != nil {
29 slog.Error(err.Error())
30 os.Exit(1)
31 }
32}
33
34func init() {
35 output := zerolog.ConsoleWriter{Out: os.Stderr}
36 logger := zerolog.New(output).With().Timestamp().Logger()
37 slog.SetDefault(slog.New(slogzerolog.Option{Logger: &logger}.NewZerologHandler()))
38
39 rootCmd.AddCommand(get.Cmd)
40 rootCmd.AddCommand(generate.Cmd)
41}