summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--argv.go14
-rw-r--r--main.go16
2 files changed, 14 insertions, 16 deletions
diff --git a/argv.go b/argv.go
index 97541a2..2b69e9a 100644
--- a/argv.go
+++ b/argv.go
@@ -9,13 +9,13 @@ package main
var argv args
type args struct {
- 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"`
- GoSrc bool `arg:"--go-src" default:"true" help:"only work in ~/go/src"`
- 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:"--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"`
+ Repo string `arg:"positional" help:"go import path"`
+ 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"`
+ 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"`
+ // Fetch bool `arg:"--git-fetch" default:"false" help:"run 'git fetch' on all your repos"`
}
func (a args) Description() string {
diff --git a/main.go b/main.go
index 26cff91..5f275f6 100644
--- a/main.go
+++ b/main.go
@@ -68,7 +68,7 @@ func main() {
} else {
trycount += 1
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)
errcount += 1
}
@@ -78,8 +78,8 @@ func main() {
os.Exit(0)
}
- // if the user didn't provide a repo, stop here
- if argv.Repo == "" {
+ // if the user didn't provide a repo, stop here unless --git-pull
+ if argv.Repo == "" || argv.Pull {
pp.WriteHelp(os.Stdout)
os.Exit(0)
}
@@ -93,11 +93,9 @@ func main() {
newr.Status.MakeRedomod()
fullgitdir = filepath.Join(wdir, argv.Repo, ".git")
- if shell.IsDir(fullgitdir) {
- if ! argv.Recursive {
- log.Info("repo already cloned", filepath.Join(wdir, argv.Repo))
- os.Exit(0)
- }
+ if ! shell.IsDir(fullgitdir) {
+ log.Info("repo cloned failed", filepath.Join(wdir, argv.Repo))
+ os.Exit(-1)
}
log.Info("scanning for repo in:", filepath.Join(wdir, argv.Repo))
@@ -134,7 +132,7 @@ func main() {
log.Info("Total repositories:", count)
log.Info("Finished go-clone for", argv.Repo)
- if !argv.NoWork {
+ if argv.AutoWork {
log.Info("Creating", wdir+"/go.work")
rv.MakeGoWork()
shell.PathRun(wdir, []string{"go", "work", "use"})