From 2f7c1807a1e6fbc9c43c247c5374748ce0cecd79 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Tue, 24 Dec 2024 02:26:54 -0600 Subject: [PATCH] more cleanups --- Makefile | 7 ++----- argv.go | 56 ++++++++++++++++++++++---------------------------------- main.go | 19 ++++++++++++------- 3 files changed, 36 insertions(+), 46 deletions(-) diff --git a/Makefile b/Makefile index e8b9505..e0ef7b6 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ info: @echo "make dirty # CheckDirty()" @echo "make user # git checkout user" @echo "make master # git checkout master" - forge --do-gui + forge vet: @GO111MODULE=off go vet @@ -32,7 +32,7 @@ goimports: @# // gofmt -w -r '"go.wit.com/gui/gadgets" -> "go.wit.com/lib/gadgets"' *.go gocui: install - forge --gui gocui --do-gui >/tmp/forge.log 2>&1 + forge --gui gocui >/tmp/forge.log 2>&1 redomod-all: forge --do-RedoGoMod @@ -70,9 +70,6 @@ mine: install all: install forge --find-all -gui: install - forge --do-gui - patches: install forge --do-patches diff --git a/argv.go b/argv.go index c47fd45..a32f87d 100644 --- a/argv.go +++ b/argv.go @@ -40,34 +40,20 @@ case args.Push != nil: */ type args struct { - Find *FindCmd `arg:"subcommand:find" help:"select repos (for example, dirty or mine or read-only)"` - Do *DoCmd `arg:"subcommand:do" help:"do something ('git pull', 'build', 'install', etc)"` - Config bool `arg:"--config" help:"show your .config/forge/ settings"` - // FindAll bool `arg:"--find-all" help:"select every repo"` - // FindReadOnly bool `arg:"--find-readonly" help:"include read-only repos"` - // FindMine bool `arg:"--find-mine" help:"download private and writeable repos"` - // FindFavorites bool `arg:"--find-favorites" help:"download repos marked as favorites"` - // FindPrivate bool `arg:"--find-private" help:"list private repos in .config/forge/"` - // DoList bool `arg:"--do-list" help:"list found repos"` - // DoScan bool `arg:"--do-scan" help:"rescan your repos"` - // DoClone bool `arg:"--do-clone" help:"go-clone things you are missing"` - DoForce bool `arg:"--do-force" help:"force redo go-clone"` - // DoGitPull bool `arg:"--do-git-pull" help:"run 'git pull' on all your repos"` - // DoGitReset bool `arg:"--do-git-reset" help:"run 'git reset --hard' on all read-only repos"` - // DoBuild bool `arg:"--do-build" default:"true" help:"also try to build it"` - // DoInstall bool `arg:"--do-install" help:"try to install every binary package"` - // DoRedoGoMod bool `arg:"--do-RedoGoMod" help:"remake all the go.sum and go.mod files"` - DoGui bool `arg:"--do-gui" help:"run the gui"` - DoPatchSet bool `arg:"--do-patches" help:"make patch set"` - ListPatchSet bool `arg:"--list-patches" help:"make patch set"` - DryRun bool `arg:"--dry-run" help:"show what would be run"` - Fix bool `arg:"--fix" help:"fix config, save config & exit"` - Delete string `arg:"--delete" help:"delete this repo"` - Dirty bool `arg:"--dirty" help:"git CheckDirty() on every repo"` - User bool `arg:"--user" help:"git checkout user"` - Master bool `arg:"--master" help:"git checkout master"` - URL string `arg:"--connect" help:"gowebd url"` - Register string `arg:"--register" help:"register your git URL (foo.com/mystuff) or (github.com/foo/bar)"` + Find *FindCmd `arg:"subcommand:find" help:"select repos (for example, --all or --mine)"` + Do *DoCmd `arg:"subcommand:do" help:"do something ('git pull', 'build', 'install', etc)"` + Config bool `arg:"--config" help:"show your .config/forge/ settings"` + DoPatchSet bool `arg:"--make-patchset" help:"make patch set"` + ListPatchSet bool `arg:"--list-patchset" help:"list patch sets"` + DryRun bool `arg:"--dry-run" help:"show what would be run"` + Fix bool `arg:"--fix" help:"fix config, save config & exit"` + Delete string `arg:"--delete" help:"delete this repo"` + Dirty bool `arg:"--dirty" help:"git CheckDirty() on every repo"` + User bool `arg:"--user" help:"git checkout user"` + Devel bool `arg:"--devel" help:"git checkout devel"` + Master bool `arg:"--master" help:"git checkout master"` + URL string `arg:"--connect" help:"gowebd url"` + Register string `arg:"--register" help:"register your git URL (foo.com/mystuff) or (github.com/foo/bar)"` } func (args) Version() string { @@ -79,13 +65,15 @@ func (a args) Description() string { forge -- in the spirit of things like sourceforge Examples: - forge --config # shows your forge config (~/.config/forge/) - forge --mine # find your private and writable repos - forge --favorites # find configured as favorites + forge --config # shows your forge config (~/.config/forge/) + forge find --all do --pull # run 'git pull' in every repo + forge find --mine do --clone # git clone every package you have in your config file + forge find --all do --build --dry-run # build every binary package (but just show what would run) + forge find --all --user # checkout the user branch + forge find --all --devel # checkout the devel branch + forge find --all --master # checkout the master branch - forge --git-pull # run 'git pull' in every repo - forge --build --dry-run # build every binary package (but just show what would run) - forge --mine --clone # clone every package you have in your config file + # these options are intended for automation. You probably just want to use the GUI. ` } diff --git a/main.go b/main.go index a732e14..5ec2f5c 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,7 @@ import ( "time" "go.wit.com/dev/alexflint/arg" + "go.wit.com/gui" "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/forgepb" "go.wit.com/lib/protobuf/gitpb" @@ -158,13 +159,17 @@ func main() { okExit("patches") } - // do the gui at the very end - if argv.DoGui { - doGui() - } - if !done { - // if nothing was selected, print out a table of them on STDOUT - doCobol() + // if the user doesn't want to open the GUI and + // nothing else was specified to be done, + // then just list the table to stdout + if gui.NoGui() { + if !done { + // if nothing was selected, print out a table of them on STDOUT + doCobol() + okExit("") + } } + // open the gui + doGui() okExit("") }