package main /* this parses the command line arguements this enables command line options from other packages like 'gui' and 'log' */ type args struct { Quick *QuickCmd `arg:"subcommand:quick" help:"only do repos with patches"` DryRun bool `arg:"--dry-run,env:DRYRUN" help:"don't actually do the release"` // Fix bool `arg:"--fix" help:"run fixGoMod() on startup"` Minor bool `arg:"--minor" help:"increment minor verion numbers"` Protobuf bool `arg:"--protobuf" help:"increment protobuf repos"` Reason string `arg:"--reason" help:"tag message"` // DumpVersions bool `arg:"--dump-versions" help:"dump the versions file for go.wit.com"` Port int `arg:"--port" default:"9419" help:"do fun stuff with curl"` Bash bool `arg:"--bash" help:"generate bash completion"` BashAuto []string `arg:"--auto-complete" help:"does the actual autocompletion"` } type QuickCmd struct { List *EmptyCmd `arg:"subcommand:list" help:"list available patches"` Show *EmptyCmd `arg:"subcommand:show" help:"show a specific patch"` } type EmptyCmd struct { } func (a args) Description() string { return ` Example usage: guireleaser go.wit.com/apps/go-clone --increment --release --dry-run --reason "blerg" This will pull down the go sources and the repositories in the go.sum file using git clone` } func (args) Version() string { return "guireleaser " + VERSION }