Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Command = &cobra.Command{ Use: "rong", Short: "A material you color generator from image or video.", SilenceUsage: true, PersistentPostRun: func(_ *cobra.Command, _ []string) { if logfile != nil { slog.Info("Exiting rong") logfile.Close() } }, PersistentPreRunE: func(cmd *cobra.Command, _ []string) error { if cmd.Name() == "_carapace" { return nil } tty := os.Getenv("TERM") != "dumb" && (isatty.IsTerminal(os.Stderr.Fd()) || isatty.IsCygwinTerminal(os.Stderr.Fd())) termcolor.NoColor = !tty opts := slogcolor.DefaultOptions opts.NoTime = true opts.SrcFileMode = 0 opts.LevelTags = map[slog.Level]string{ slog.LevelDebug: termcolor.New(termcolor.FgGreen).Sprint("DBG"), slog.LevelInfo: termcolor.New(termcolor.FgCyan).Sprint("INF"), slog.LevelWarn: termcolor.New(termcolor.FgYellow).Sprint("WRN"), slog.LevelError: termcolor.New(termcolor.FgRed).Sprint("ERR"), } verbose, _ := cmd.Flags().GetBool("verbose") if verbose { opts.Level = slog.LevelDebug } quiet, _ := cmd.Flags().GetBool("quiet") if quiet { opts.Level = slog.Level(100) } stderrHandler := slogcolor.NewHandler(os.Stderr, opts) logFilePath, err := cmd.Flags().GetString("log-file") if err != nil || logFilePath == "" { logger := slog.New(stderrHandler) slog.SetDefault(logger) viper.SetOptions(viper.WithLogger(logger)) } else { err := os.MkdirAll(filepath.Dir(logFilePath), 0755) if err != nil { slog.Error("Failed to create parent directory for log file", "error", err) } file, err := os.OpenFile(logFilePath, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0666) if err != nil { logger := slog.New(stderrHandler) slog.SetDefault(logger) viper.SetOptions(viper.WithLogger(logger)) slog.Error("Failed to open log-file", "error", err) } else { fileHanlder := slog.NewJSONHandler(file, &slog.HandlerOptions{ AddSource: true, Level: slog.LevelDebug, }) handler := slogmulti.Fanout(stderrHandler, fileHanlder) logger := slog.New(handler) slog.SetDefault(logger) viper.SetOptions(viper.WithLogger(logger)) logfile = file } } viper.AddConfigPath("/etc/rong") viper.AddConfigPath(pathutil.ConfigDir) viper.SetConfigType("yaml") viper.SetConfigName("config") viper.SetEnvPrefix("rong") viper.SetDefault("dark", true) viper.SetDefault("variant", dynamic.Expressive) viper.SetDefault("platform", dynamic.Phone) cfgFlag := cmd.Flags().Lookup("config") if cfgFlag != nil && cfgFlag.Changed { viper.SetConfigFile(cfgFlag.Value.String()) } return viper.ReadInConfig() }, }
Command is root command of the cli
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.