chore: use cli default

main
sudo pacman -Syu 2022-02-07 21:22:20 +07:00
parent 8a55fb5b3d
commit f6240686ec
2 changed files with 59 additions and 58 deletions

View File

@ -29,6 +29,7 @@ type action struct {
filename string filename string
filetype string filetype string
dryRun bool dryRun bool
interactive bool
} }
} }
@ -47,24 +48,16 @@ func (a *action) getFlags(c *cli.Context) {
a.flags.scopes[scope] = struct{}{} a.flags.scopes[scope] = struct{}{}
} }
a.flags.repository = a.getFlagValue(c, flagRepository, defaultRepository) a.flags.repository = c.String(flagRepository)
a.flags.output = a.getFlagValue(c, flagOutput, defaultOutput) a.flags.output = c.String(flagOutput)
a.flags.filename = a.getFlagValue(c, flagFilename, defaultFilename) a.flags.filename = c.String(flagFilename)
a.flags.filetype = a.getFlagValue(c, flagFiletype, defaultFiletype) a.flags.filetype = c.String(flagFiletype)
a.flags.dryRun = c.Bool(flagDryRun) a.flags.dryRun = c.Bool(flagDryRun)
a.flags.interactive = c.Bool(flagInteractive)
a.log("flags %+v", a.flags) a.log("flags %+v", a.flags)
} }
func (a *action) getFlagValue(c *cli.Context, flag, fallback string) string {
value := c.String(flag)
if value == "" {
value = fallback
}
return value
}
func (a *action) log(format string, v ...interface{}) { func (a *action) log(format string, v ...interface{}) {
if a.flags.verbose { if a.flags.verbose {
log.Printf(format, v...) log.Printf(format, v...)

View File

@ -21,6 +21,7 @@ const (
flagFilename = "filename" flagFilename = "filename"
flagFiletype = "filetype" flagFiletype = "filetype"
flagDryRun = "dry-run" flagDryRun = "dry-run"
flagInteractive = "interactive"
commandGenerate = "generate" commandGenerate = "generate"
@ -35,11 +36,13 @@ const (
usageFilename = "output `FILENAME`" usageFilename = "output `FILENAME`"
usageFiletype = "output `FILETYPE`" usageFiletype = "output `FILETYPE`"
usageDryRun = "demo run without actually changing anything" usageDryRun = "demo run without actually changing anything"
usageInteractive = "interactive mode"
) )
var ( var (
aliasGenerate = []string{"gen"} aliasGenerate = []string{"gen"}
aliasVerbose = []string{"v"} aliasVerbose = []string{"v"}
aliasInteractive = []string{"i"}
) )
type App struct { type App struct {
@ -82,27 +85,32 @@ func NewApp() *App {
&cli.StringFlag{ &cli.StringFlag{
Name: flagRepository, Name: flagRepository,
Usage: usageRepository, Usage: usageRepository,
DefaultText: defaultRepository, Value: defaultRepository,
}, },
&cli.StringFlag{ &cli.StringFlag{
Name: flagOutput, Name: flagOutput,
Usage: usageOutput, Usage: usageOutput,
DefaultText: defaultOutput, Value: defaultOutput,
}, },
&cli.StringFlag{ &cli.StringFlag{
Name: flagFilename, Name: flagFilename,
Usage: usageFilename, Usage: usageFilename,
DefaultText: defaultFilename, Value: defaultFilename,
}, },
&cli.StringFlag{ &cli.StringFlag{
Name: flagFiletype, Name: flagFiletype,
Usage: usageFiletype, Usage: usageFiletype,
DefaultText: defaultFiletype, Value: defaultFiletype,
}, },
&cli.BoolFlag{ &cli.BoolFlag{
Name: flagDryRun, Name: flagDryRun,
Usage: usageDryRun, Usage: usageDryRun,
}, },
&cli.BoolFlag{
Name: flagInteractive,
Usage: usageInteractive,
Aliases: aliasInteractive,
},
}, },
Action: a.RunGenerate, Action: a.RunGenerate,
}, },