package main /* this parses the command line arguements this enables command line options from other packages like 'gui' and 'log' */ var argv args type args struct { Repo string `arg:"positional" help:"go import path"` AutoWork bool `arg:"--auto-work" default:"false" help:"auto recreate the go.work file"` DryRun bool `arg:"--dry-run" help:"show what would be run"` Recursive bool `arg:"--recursive" default:"false" help:"resursively clone all dependencies"` Pull bool `arg:"--git-pull" default:"false" help:"run 'git pull' on all your repos"` RedoGoMod bool `arg:"--go-reset" default:"false" help:"remake all the go.sum and go.mod files"` // Fetch bool `arg:"--git-fetch" default:"false" help:"run 'git fetch' on all your repos"` } func (a args) Description() string { return ` go-clone does git clone on go package repositories. It uses ~/go/src unless it finds a go.work file in a parent directory. This will clone the sources for go-clone: go-clone go.wit.com/apps/go-clone If a go.work file is found, this will auto generate a new go.work file. The old work file is saved as go.work.last go-clone --auto-work go.wit.com/apps/go-clone This will recursively clone a package and all the build requirements: go-clone --recursive go.wit.com/apps/go-clone ` } func (args) Version() string { return "go-clone " + VERSION + " Built on " + BUILDTIME }