package main import ( "context" "flag" "fmt" "log/slog" "os" "os/signal" "syscall" ) var version = "dev" func main() { showVersion := flag.Bool("version", false, "print version and exit") flag.Parse() if *showVersion { fmt.Println("restic-manager-server", version) return } logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo})) slog.SetDefault(logger) ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) defer stop() slog.Info("restic-manager server starting", "version", version) <-ctx.Done() slog.Info("shutting down") }