Add formatters.Preferred

This commit is contained in:
Dan Jones 2024-03-09 16:05:59 -06:00
commit febbce8a6b
4 changed files with 22 additions and 2 deletions

View file

@ -60,7 +60,7 @@ var dropCmd = &cobra.Command{
return err return err
} }
form, err := formatters.New("plain") form, err := formatters.Preferred()
if err != nil { if err != nil {
return err return err
} }

View file

@ -50,7 +50,7 @@ func init() {
// will be global for your application. // will be global for your application.
rootCmd.PersistentFlags().StringVarP(&config.ConfigPath, "config", "c", config.ConfigPath, "config file") rootCmd.PersistentFlags().StringVarP(&config.ConfigPath, "config", "c", config.ConfigPath, "config file")
rootCmd.PersistentFlags().StringToStringVarP(&config.Overrides, "config-value", "v", config.Overrides, "Override config values. Use dot syntax to specify key. E.g. -v output.stdout.config.json=true") rootCmd.PersistentFlags().StringToStringVarP(&config.Overrides, "config-value", "v", config.Overrides, "Override config values. Use dot syntax to specify key. E.g. -v output.stdout.config.formatter=json")
// Cobra also supports local flags, which will only run // Cobra also supports local flags, which will only run
// when this action is called directly. // when this action is called directly.

View file

@ -12,6 +12,16 @@ var formatterMap = map[string]formatMaker{
"plain": newPlain, "plain": newPlain,
} }
func Preferred() (f Formatter, err error) {
conf, err := config.Load()
if err != nil {
return
}
std, _ := conf.Outputs.Stdout()
kind := std.Formatter
return New(kind)
}
func New(kind string) (f Formatter, err error) { func New(kind string) (f Formatter, err error) {
conf, err := config.Load() conf, err := config.Load()
if err != nil { if err != nil {

View file

@ -32,4 +32,14 @@ func TestNewCantGetConfig(t *testing.T) {
form, err := New("plain") form, err := New("plain")
assert.Nil(t, form) assert.Nil(t, form)
assert.Error(t, err) assert.Error(t, err)
form, err = Preferred()
assert.Nil(t, form)
assert.Error(t, err)
}
func TestPreferred(t *testing.T) {
form, err := Preferred()
assert.NotNil(t, form)
assert.NoError(t, err)
} }