diff options
| -rw-r--r-- | argv.go | 66 | ||||
| -rwxr-xr-x | build | 4 | ||||
| -rw-r--r-- | main.go | 6 | ||||
| -rw-r--r-- | structs.go | 3 |
4 files changed, 37 insertions, 42 deletions
@@ -9,29 +9,29 @@ package main */ import ( - "fmt" "os" - "strings" + + "go.wit.com/lib/gui/prep" ) var argv args type args struct { - Drives *EmptyCmd `arg:"subcommand:drives" help:"list drives"` - DebBuild *EmptyCmd `arg:"subcommand:debian" help:"build missing .deb packages"` - MacBuild *EmptyCmd `arg:"subcommand:macos" help:"build macos packages"` - MakeInstall *EmptyCmd `arg:"subcommand:install" help:"run make install in each repo"` - ListPkgs *EmptyCmd `arg:"subcommand:list" help:"list all the packages on mirrors.wit.com"` - Clone *EmptyCmd `arg:"subcommand:repomap-clone" help:"go-clone from a gowebd repomap"` - Upgrade *EmptyCmd `arg:"subcommand:upgrade" help:"apt upgrade packages installed from mirrors.wit.com"` - RepoMap string `arg:"--repomap" help:"location of the repomap"` - Release bool `arg:"--release" help:"use go-deb --release"` - DryRun bool `arg:"--dry-run" help:"only show what would be packaged"` - Verbose bool `arg:"--verbose" help:"be loud about it"` - Force bool `arg:"--force" help:"rebuild everything"` - Recursive bool `arg:"--recursive" help:"go-clone --recursive"` - Test bool `arg:"--test" help:"test build after everything else"` - WITCOM bool `arg:"--witcom" help:"add the GPL header"` + Drives *EmptyCmd `arg:"subcommand:drives" help:"list drives"` + // DebBuild *EmptyCmd `arg:"subcommand:debian" help:"build missing .deb packages"` + // MacBuild *EmptyCmd `arg:"subcommand:macos" help:"build macos packages"` + // MakeInstall *EmptyCmd `arg:"subcommand:install" help:"run make install in each repo"` + // ListPkgs *EmptyCmd `arg:"subcommand:list" help:"list all the packages on mirrors.wit.com"` + // Clone *EmptyCmd `arg:"subcommand:repomap-clone" help:"go-clone from a gowebd repomap"` + // Upgrade *EmptyCmd `arg:"subcommand:upgrade" help:"apt upgrade packages installed from mirrors.wit.com"` + RepoMap string `arg:"--repomap" help:"location of the repomap"` + Release bool `arg:"--release" help:"use go-deb --release"` + DryRun bool `arg:"--dry-run" help:"only show what would be packaged"` + Verbose bool `arg:"--verbose" help:"be loud about it"` + Force bool `arg:"--force" help:"rebuild everything"` + Recursive bool `arg:"--recursive" help:"go-clone --recursive"` + Test bool `arg:"--test" help:"test build after everything else"` + WITCOM bool `arg:"--witcom" help:"add the GPL header"` } type EmptyCmd struct { @@ -41,25 +41,19 @@ func (args) Version() string { return ARGNAME + " " + VERSION + " Built on " + BUILDTIME } -func (a args) DoAutoComplete(argv []string) { - switch argv[0] { - case "list": - fmt.Println("--all --mine --favorites --private") - case "debian": - fmt.Println("--dry-run") - case "upgrade": - fmt.Println("--dry-run") - case "build": - fmt.Println("--verbose") - case "install": - fmt.Println("--verbose") - case "repomap-clone": - fmt.Println("--repomap") - default: - if strings.HasSuffix(argv[0], ARGNAME) { - // list the subcommands here - fmt.Println("--bash list build debian install repomap-clone upgrade") - } +/* + handles shell autocomplete +*/ + +func (args) Appname() string { + return ARGNAME +} + +func (a args) DoAutoComplete(pb *prep.Auto) { + if pb.Cmd == "" { + pb.Autocomplete3([]string{"drives", "gui"}) + } else { + pb.SubCommand(pb.Argv...) } os.Exit(0) } @@ -0,0 +1,4 @@ +#!/bin/bash -x + +mkdir -p files/usr/share/bash-completion/completions/ +fixup --bash > files/usr/share/bash-completion/completions/fixup @@ -12,7 +12,6 @@ import ( "plugin" "unicode" - "go.wit.com/dev/alexflint/arg" "go.wit.com/lib/gui/prep" "go.wit.com/log" ) @@ -29,9 +28,8 @@ var resources embed.FS func main() { me = new(autoType) - prep.Bash(ARGNAME, argv.DoAutoComplete) // todo: this line should be: prep.Bash(argv) - me.myGui = prep.Gui() // prepares the GUI package for go-args - me.pp = arg.MustParse(&argv) + me.myGui = prep.Gui() // prepares the GUI package for go-args + me.auto = prep.Bash3(&argv) // add support for bash autocomplete with go-arg me.pb = NewBlocks() @@ -4,7 +4,6 @@ package main import ( - "go.wit.com/dev/alexflint/arg" "go.wit.com/gui" "go.wit.com/lib/gui/prep" ) @@ -13,7 +12,7 @@ var me *autoType // this app's variables type autoType struct { - pp *arg.Parser // go-arg preprocessor + auto *prep.Auto // more experiments for bash handling myGui *prep.GuiPrep // the gui toolkit handle dd *gui.Node // the drives dropdown list parted *gui.Node // the current drive to run parted on |
