next : use new flags logic, tags as slice of Arg

This commit is contained in:
bth 2026-01-18 10:17:24 -08:00
commit 109591f938
4 changed files with 41 additions and 3 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
um
go

BIN
go

Binary file not shown.

View file

@ -1,8 +1,45 @@
package next
import "fmt"
import (
"fmt"
"os"
"strings"
"github.com/brtholomy/um/go/flags"
)
type options struct {
descriptor flags.Arg
tags []flags.Arg
}
func InitOpts() options {
return options{
flags.Arg{"", "midfix file descriptor"},
[]flags.Arg{},
}
}
func ParseArgs(args []string) options {
opts := InitOpts()
for i, arg := range args {
switch {
case i == 0 && !flags.HasDashPrefix(arg):
opts.descriptor.Val = args[0]
case i == 1 && !flags.HasDashPrefix(arg):
for _, t := range strings.Split(args[1], ",") {
opts.tags = append(opts.tags, flags.Arg{t, "tag"})
}
case i >= 2:
fmt.Println("um next : too many args")
os.Exit(1)
}
}
return opts
}
func Next(args []string) {
fmt.Println("next")
fmt.Println(args)
opts := ParseArgs(args)
fmt.Println(opts)
}

View file

@ -46,5 +46,5 @@ func ParseArgs(args []string) options {
func Tag(args []string) {
fmt.Printf("args: %#v\n", args)
opts := ParseArgs(args)
fmt.Printf("opts: %#v\n", opts)
fmt.Println(opts)
}