add --auto-work option to generate go.work files
This commit is contained in:
parent
bef6d6c911
commit
f8bef3081c
14
argv.go
14
argv.go
|
@ -9,13 +9,13 @@ package main
|
||||||
var argv args
|
var argv args
|
||||||
|
|
||||||
type args struct {
|
type args struct {
|
||||||
Repo string `arg:"positional" help:"go import path"`
|
Repo string `arg:"positional" help:"go import path"`
|
||||||
NoWork bool `arg:"--no-work" default:"true" help:"do not make or modify the go.work file"`
|
AutoWork bool `arg:"--auto-work" default:"false" help:"auto recreate the go.work file"`
|
||||||
GoSrc bool `arg:"--go-src" default:"true" help:"only work in ~/go/src"`
|
GoSrc bool `arg:"--go-src" default:"true" help:"only work in ~/go/src"`
|
||||||
DryRun bool `arg:"--dry-run" help:"show what would be run"`
|
DryRun bool `arg:"--dry-run" help:"show what would be run"`
|
||||||
Recursive bool `arg:"--recursive" default:"false" help:"resursively clone all dependencies"`
|
Recursive bool `arg:"--recursive" default:"false" help:"resursively clone all dependencies"`
|
||||||
Pull bool `arg:"--pull" default:"false" help:"run 'git pull' on all your repos"`
|
Pull bool `arg:"--git-pull" default:"false" help:"run 'git pull' on all your repos"`
|
||||||
// Fetch bool `arg:"--fetch" default:"false" help:"run 'git fetch' on all your repos"`
|
// Fetch bool `arg:"--git-fetch" default:"false" help:"run 'git fetch' on all your repos"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a args) Description() string {
|
func (a args) Description() string {
|
||||||
|
|
16
main.go
16
main.go
|
@ -68,7 +68,7 @@ func main() {
|
||||||
} else {
|
} else {
|
||||||
trycount += 1
|
trycount += 1
|
||||||
log.Info("actually run: git pull:", repo.Status.Path())
|
log.Info("actually run: git pull:", repo.Status.Path())
|
||||||
if result := repo.Status.Run(pull); result.Error != nil {
|
if result := shell.PathRunRealtime(repo.Status.Path(), pull); result.Error != nil {
|
||||||
log.Info("git pull error:", result.Error)
|
log.Info("git pull error:", result.Error)
|
||||||
errcount += 1
|
errcount += 1
|
||||||
}
|
}
|
||||||
|
@ -78,8 +78,8 @@ func main() {
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the user didn't provide a repo, stop here
|
// if the user didn't provide a repo, stop here unless --git-pull
|
||||||
if argv.Repo == "" {
|
if argv.Repo == "" || argv.Pull {
|
||||||
pp.WriteHelp(os.Stdout)
|
pp.WriteHelp(os.Stdout)
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
@ -93,11 +93,9 @@ func main() {
|
||||||
newr.Status.MakeRedomod()
|
newr.Status.MakeRedomod()
|
||||||
|
|
||||||
fullgitdir = filepath.Join(wdir, argv.Repo, ".git")
|
fullgitdir = filepath.Join(wdir, argv.Repo, ".git")
|
||||||
if shell.IsDir(fullgitdir) {
|
if ! shell.IsDir(fullgitdir) {
|
||||||
if ! argv.Recursive {
|
log.Info("repo cloned failed", filepath.Join(wdir, argv.Repo))
|
||||||
log.Info("repo already cloned", filepath.Join(wdir, argv.Repo))
|
os.Exit(-1)
|
||||||
os.Exit(0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Info("scanning for repo in:", filepath.Join(wdir, argv.Repo))
|
log.Info("scanning for repo in:", filepath.Join(wdir, argv.Repo))
|
||||||
|
@ -134,7 +132,7 @@ func main() {
|
||||||
|
|
||||||
log.Info("Total repositories:", count)
|
log.Info("Total repositories:", count)
|
||||||
log.Info("Finished go-clone for", argv.Repo)
|
log.Info("Finished go-clone for", argv.Repo)
|
||||||
if !argv.NoWork {
|
if argv.AutoWork {
|
||||||
log.Info("Creating", wdir+"/go.work")
|
log.Info("Creating", wdir+"/go.work")
|
||||||
rv.MakeGoWork()
|
rv.MakeGoWork()
|
||||||
shell.PathRun(wdir, []string{"go", "work", "use"})
|
shell.PathRun(wdir, []string{"go", "work", "use"})
|
||||||
|
|
Loading…
Reference in New Issue