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}