forge/argv.go

62 lines
3.3 KiB
Go
Raw Normal View History

2024-12-02 06:59:56 -06:00
package main
/*
this parses the command line arguements
*/
var argv args
2024-12-24 01:54:33 -06:00
type FindCmd struct {
All bool `arg:"--all" help:"select every repo"`
ReadOnly bool `arg:"--readonly" help:"include read-only repos"`
Mine bool `arg:"--mine" help:"your repos as defined in the forge config"`
Favorites bool `arg:"--favorites" help:"your repos configured as favorites"`
Private bool `arg:"--private" help:"private repos from your .config/forge/"`
}
type DoCmd struct {
2024-12-24 03:00:55 -06:00
List bool `arg:"--list" help:"just show a table of the current state"`
GitPull bool `arg:"--pull" help:"run 'git pull'"`
GitReset bool `arg:"--git-reset" help:"run 'git reset --hard'"`
Scan bool `arg:"--scan" help:"reload protobuf from .git/"`
Force bool `arg:"--force" help:"force redo things"`
2024-12-24 03:08:06 -06:00
Dirty bool `arg:"--dirty" help:"update git CheckDirty()"`
2024-12-24 01:54:33 -06:00
}
2024-12-02 06:59:56 -06:00
type args struct {
2024-12-24 02:26:54 -06:00
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"`
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)"`
2024-12-02 06:59:56 -06:00
}
func (args) Version() string {
return "forge " + VERSION + " Built on " + BUILDTIME
}
func (a args) Description() string {
return `
forge -- in the spirit of things like sourceforge
Examples:
2024-12-24 02:26:54 -06:00
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
2024-12-05 12:29:47 -06:00
2024-12-24 02:26:54 -06:00
# these options are intended for automation. You probably just want to use the GUI.
2024-12-23 11:15:16 -06:00
`
2024-12-02 06:59:56 -06:00
}