61 lines
1.7 KiB
Go
61 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
/*
|
|
this parses the command line arguements
|
|
|
|
this enables command line options from other packages like 'gui' and 'log'
|
|
*/
|
|
|
|
type args struct {
|
|
Commit *EmptyCmd `arg:"subcommand:commit" help:"'git commit' but errors out if on wrong branch"`
|
|
Show *EmptyCmd `arg:"subcommand:show" help:"show what would be done"`
|
|
Gui *EmptyCmd `arg:"subcommand:gui" help:"open the gui"`
|
|
Ldflags []string `arg:"--ldflags" help:"flags to pass to go build"`
|
|
Forge string `arg:"--forge" help:"use a git repo from forge"`
|
|
OutDir string `arg:"--dir" help:"write .deb file into this directory"`
|
|
Release bool `arg:"--release" help:"build a release from the last git tag"`
|
|
KeepFiles bool `arg:"--keep-files" help:"keep the build files/"`
|
|
Force bool `arg:"--force" default:"false" help:"force overwrite an existing .deb file"`
|
|
Verbose bool `arg:"--verbose" help:"show more things"`
|
|
}
|
|
|
|
func (args) Version() string {
|
|
return "go-clone " + VERSION + " Built on " + DATE
|
|
}
|
|
|
|
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`
|
|
}
|
|
|
|
/*
|
|
handles shell autocomplete
|
|
*/
|
|
|
|
func (a args) DoAutoComplete(argv []string) {
|
|
switch argv[0] {
|
|
case "arch":
|
|
fmt.Println("riscv64")
|
|
case "build":
|
|
fmt.Println("user devel release")
|
|
default:
|
|
if argv[0] == ARGNAME {
|
|
// list the subcommands here
|
|
fmt.Println("arch build gui show")
|
|
}
|
|
}
|
|
os.Exit(0)
|
|
}
|