♻️ Move cli code to internal
This commit is contained in:
parent
1abe398c7a
commit
64b2242567
2 changed files with 46 additions and 12 deletions
|
|
@ -9,28 +9,23 @@ import (
|
||||||
e "codeberg.org/danjones000/utils/cli/err"
|
e "codeberg.org/danjones000/utils/cli/err"
|
||||||
"codeberg.org/danjones000/utils/cli/spin"
|
"codeberg.org/danjones000/utils/cli/spin"
|
||||||
"codeberg.org/danjones000/utils/convids"
|
"codeberg.org/danjones000/utils/convids"
|
||||||
"github.com/spf13/pflag"
|
ccli "codeberg.org/danjones000/utils/internal/cli/convids"
|
||||||
)
|
)
|
||||||
|
|
||||||
const dataPath = "shows.yml"
|
const dataPath = "shows.yml"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
loop := pflag.BoolP("loop", "l", false, "Loop")
|
flags, err := ccli.ParseFlags(os.Args[0], os.Args[1:])
|
||||||
help := pflag.BoolP("help", "h", false, "Get Help")
|
e.HandleErr(err)
|
||||||
dryRun := pflag.BoolP("dry-run", "d", false, "Do a dry run")
|
if *ccli.Help {
|
||||||
pflag.Parse()
|
flags.Usage()
|
||||||
|
|
||||||
if *help {
|
|
||||||
pflag.Usage()
|
|
||||||
os.Exit(2)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, done := c.SelfCancelingContextFromBackground()
|
ctx, done := c.SelfCancelingContextFromBackground()
|
||||||
defer done()
|
defer done()
|
||||||
|
|
||||||
var walker convids.ShowWalker
|
var walker convids.ShowWalker
|
||||||
if *dryRun {
|
if *ccli.DryRun {
|
||||||
*loop = false
|
|
||||||
walker = convids.DryRun(os.Stdout)
|
walker = convids.DryRun(os.Stdout)
|
||||||
} else {
|
} else {
|
||||||
gs := convids.GetShow(ctx)
|
gs := convids.GetShow(ctx)
|
||||||
|
|
@ -52,7 +47,7 @@ func main() {
|
||||||
|
|
||||||
groupPrinter := convids.PrintGroupName(os.Stdout)
|
groupPrinter := convids.PrintGroupName(os.Stdout)
|
||||||
|
|
||||||
if *loop {
|
if *ccli.Loop {
|
||||||
fmt.Println("looping")
|
fmt.Println("looping")
|
||||||
for err == nil {
|
for err == nil {
|
||||||
err = convids.WalkFiles(data, false, groupPrinter, walker)
|
err = convids.WalkFiles(data, false, groupPrinter, walker)
|
||||||
|
|
|
||||||
39
internal/cli/convids/flags.go
Normal file
39
internal/cli/convids/flags.go
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
package convids
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/pflag"
|
||||||
|
)
|
||||||
|
|
||||||
|
var Help *bool
|
||||||
|
var Loop *bool
|
||||||
|
var DryRun *bool
|
||||||
|
|
||||||
|
func GetFlags(name string) *pflag.FlagSet {
|
||||||
|
flags := pflag.NewFlagSet(name, pflag.ExitOnError)
|
||||||
|
|
||||||
|
Help = flags.BoolP("help", "h", false, "Get Help")
|
||||||
|
Loop = flags.BoolP("loop", "l", false, "Loop")
|
||||||
|
DryRun = flags.BoolP("dry-run", "d", false, "Do a dry run (won't loop)")
|
||||||
|
|
||||||
|
flags.Usage = func() {
|
||||||
|
fmt.Printf("Usage of %s:\n", name)
|
||||||
|
flags.PrintDefaults()
|
||||||
|
}
|
||||||
|
return flags
|
||||||
|
}
|
||||||
|
|
||||||
|
func ParseFlags(name string, args []string) (*pflag.FlagSet, error) {
|
||||||
|
flags := GetFlags(name)
|
||||||
|
err := flags.Parse(args)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if *DryRun {
|
||||||
|
flags.Set("loop", "false")
|
||||||
|
}
|
||||||
|
|
||||||
|
return flags, nil
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue