mirror of
https://github.com/mikefarah/yq.git
synced 2025-01-26 00:15:36 +00:00
Refactoring
This commit is contained in:
parent
1d35134310
commit
cad809515c
@ -1,51 +1,6 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
var unwrapScalarFlag = newUnwrapFlag()
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"github.com/spf13/pflag"
|
|
||||||
)
|
|
||||||
|
|
||||||
type boolFlag interface {
|
|
||||||
pflag.Value
|
|
||||||
IsExplicitySet() bool
|
|
||||||
IsSet() bool
|
|
||||||
}
|
|
||||||
|
|
||||||
type unwrapScalarFlagStrc struct {
|
|
||||||
explicitySet bool
|
|
||||||
value bool
|
|
||||||
}
|
|
||||||
|
|
||||||
func newFlag() boolFlag {
|
|
||||||
return &unwrapScalarFlagStrc{value: true}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *unwrapScalarFlagStrc) IsExplicitySet() bool {
|
|
||||||
return f.explicitySet
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *unwrapScalarFlagStrc) IsSet() bool {
|
|
||||||
return f.value
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *unwrapScalarFlagStrc) String() string {
|
|
||||||
return strconv.FormatBool(f.value)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *unwrapScalarFlagStrc) Set(value string) error {
|
|
||||||
|
|
||||||
v, err := strconv.ParseBool(value)
|
|
||||||
f.value = v
|
|
||||||
f.explicitySet = true
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*unwrapScalarFlagStrc) Type() string {
|
|
||||||
return "bool"
|
|
||||||
}
|
|
||||||
|
|
||||||
var unwrapScalarFlag = newFlag()
|
|
||||||
|
|
||||||
var unwrapScalar = false
|
var unwrapScalar = false
|
||||||
|
|
||||||
|
17
cmd/root.go
17
cmd/root.go
@ -35,7 +35,7 @@ yq -P sample.json
|
|||||||
return evaluateSequence(cmd, args)
|
return evaluateSequence(cmd, args)
|
||||||
|
|
||||||
},
|
},
|
||||||
PersistentPreRun: func(cmd *cobra.Command, args []string) {
|
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
|
||||||
cmd.SetOut(cmd.OutOrStdout())
|
cmd.SetOut(cmd.OutOrStdout())
|
||||||
|
|
||||||
var format = logging.MustStringFormatter(
|
var format = logging.MustStringFormatter(
|
||||||
@ -52,16 +52,23 @@ yq -P sample.json
|
|||||||
|
|
||||||
logging.SetBackend(backend)
|
logging.SetBackend(backend)
|
||||||
yqlib.InitExpressionParser()
|
yqlib.InitExpressionParser()
|
||||||
|
|
||||||
|
outputFormatType, err := yqlib.OutputFormatFromString(outputFormat)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
if (inputFormat == "x" || inputFormat == "xml") &&
|
if (inputFormat == "x" || inputFormat == "xml") &&
|
||||||
outputFormat != "x" && outputFormat != "xml" &&
|
outputFormatType != yqlib.XMLOutputFormat &&
|
||||||
yqlib.ConfiguredXMLPreferences.AttributePrefix == "+" {
|
yqlib.ConfiguredXMLPreferences.AttributePrefix == "+" {
|
||||||
yqlib.GetLogger().Warning("The default xml-attribute-prefix will change in the v4.30 to `+@` to avoid " +
|
yqlib.GetLogger().Warning("The default xml-attribute-prefix will change in the v4.30 to `+@` to avoid " +
|
||||||
"naming conflicts with the default content name, directive name and proc inst prefix. If you need to keep " +
|
"naming conflicts with the default content name, directive name and proc inst prefix. If you need to keep " +
|
||||||
"`+` please set that value explicityly with --xml-attribute-prefix.")
|
"`+` please set that value explicityly with --xml-attribute-prefix.")
|
||||||
}
|
}
|
||||||
|
|
||||||
if outputFormat == "y" || outputFormat == "yaml" ||
|
if outputFormatType == yqlib.YamlOutputFormat ||
|
||||||
outputFormat == "p" || outputFormat == "props" {
|
outputFormatType == yqlib.PropsOutputFormat {
|
||||||
unwrapScalar = true
|
unwrapScalar = true
|
||||||
}
|
}
|
||||||
if unwrapScalarFlag.IsExplicitySet() {
|
if unwrapScalarFlag.IsExplicitySet() {
|
||||||
@ -72,6 +79,8 @@ yq -P sample.json
|
|||||||
yqlib.ConfiguredYamlPreferences.UnwrapScalar = unwrapScalar
|
yqlib.ConfiguredYamlPreferences.UnwrapScalar = unwrapScalar
|
||||||
|
|
||||||
yqlib.ConfiguredYamlPreferences.PrintDocSeparators = !noDocSeparators
|
yqlib.ConfiguredYamlPreferences.PrintDocSeparators = !noDocSeparators
|
||||||
|
|
||||||
|
return nil
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
46
cmd/unwrap_flag.go
Normal file
46
cmd/unwrap_flag.go
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/spf13/pflag"
|
||||||
|
)
|
||||||
|
|
||||||
|
type boolFlag interface {
|
||||||
|
pflag.Value
|
||||||
|
IsExplicitySet() bool
|
||||||
|
IsSet() bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type unwrapScalarFlagStrc struct {
|
||||||
|
explicitySet bool
|
||||||
|
value bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func newUnwrapFlag() boolFlag {
|
||||||
|
return &unwrapScalarFlagStrc{value: true}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *unwrapScalarFlagStrc) IsExplicitySet() bool {
|
||||||
|
return f.explicitySet
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *unwrapScalarFlagStrc) IsSet() bool {
|
||||||
|
return f.value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *unwrapScalarFlagStrc) String() string {
|
||||||
|
return strconv.FormatBool(f.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *unwrapScalarFlagStrc) Set(value string) error {
|
||||||
|
|
||||||
|
v, err := strconv.ParseBool(value)
|
||||||
|
f.value = v
|
||||||
|
f.explicitySet = true
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*unwrapScalarFlagStrc) Type() string {
|
||||||
|
return "bool"
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user