⚙️ Move preferred formatter to its own config field
This commit is contained in:
parent
ce83cf1cc2
commit
cfeab035d3
6 changed files with 12 additions and 7 deletions
|
|
@ -44,7 +44,7 @@ var DropCmd = &cobra.Command{
|
|||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
v, _ := config.RetrieveFromContext(cmd.Context())
|
||||
if outJson {
|
||||
v.Set("output.stdout.config.format", "json")
|
||||
v.Set("formatters.preferred", "json")
|
||||
}
|
||||
|
||||
log := args[0]
|
||||
|
|
|
|||
|
|
@ -63,5 +63,5 @@ var configValues map[string]string
|
|||
|
||||
func init() {
|
||||
RootCmd.PersistentFlags().StringVarP(&configPath, "config", "c", config.DefaultPath(), "config file")
|
||||
RootCmd.PersistentFlags().StringToStringVarP(&configValues, "config-value", "v", nil, "Override config values. Use dot syntax to specify key. E.g. -v output.stdout.config.format=json")
|
||||
RootCmd.PersistentFlags().StringToStringVarP(&configValues, "config-value", "v", nil, "Override config values. Use dot syntax to specify key. E.g. -v formatters.preferred=json")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ format = "plain"
|
|||
|
||||
[formatters]
|
||||
|
||||
# Default formatter used. Some outputs can override this value
|
||||
preferred = "plain"
|
||||
|
||||
# Each formatter may have additional configuration
|
||||
[formatters.json]
|
||||
# Set to true to pretty print JSON output
|
||||
pretty_print = false
|
||||
|
|
|
|||
|
|
@ -20,4 +20,6 @@ type Output struct {
|
|||
Config map[string]any
|
||||
}
|
||||
|
||||
type Formatters map[string]map[string]any
|
||||
type Formatters struct {
|
||||
Preferred string
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,9 +17,8 @@ var formatterMap = map[string]formatMaker{
|
|||
}
|
||||
|
||||
func Preferred(ctx context.Context) (f Formatter, err error) {
|
||||
v, _ := config.RetrieveFromContext(ctx)
|
||||
format := v.GetString("output.stdout.config.format")
|
||||
return New(ctx, format)
|
||||
_, c := config.RetrieveFromContext(ctx)
|
||||
return New(ctx, c.Formatters.Preferred)
|
||||
}
|
||||
|
||||
func New(ctx context.Context, kind string) (f Formatter, err error) {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ func setupNewTest(t *testing.T) context.Context {
|
|||
t.Helper()
|
||||
v := viper.New()
|
||||
v.SetConfigType("toml")
|
||||
v.Set("output.stdout.config.format", "plain")
|
||||
v.Set("formatters.preferred", "plain")
|
||||
v.Set("formatters.json.pretty_print", false)
|
||||
return config.AddToContext(t.Context(), v)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue