diff options
| author | Shulhan <ms@kilabit.info> | 2018-05-27 17:34:59 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2018-05-27 17:34:59 +0700 |
| commit | 22975b16c0971dff152f66083110093f2c07a602 (patch) | |
| tree | 02cc28f8cf50300b580f528df087b1e16de59c19 | |
| parent | c8635866b09a92ca42db2be2caf42bb6d4aab32c (diff) | |
| download | beku-22975b16c0971dff152f66083110093f2c07a602.tar.xz | |
Run "go install" on all packages after freezing dependencies
| -rw-r--r-- | env.go | 30 | ||||
| -rw-r--r-- | package.go | 6 |
2 files changed, 20 insertions, 16 deletions
@@ -93,7 +93,10 @@ func (env *Env) cleanUnused() { // and remove non-registered from GOPATH "src" and "pkg" directories. // func (env *Env) Freeze() (err error) { - var localPkg *Package + var ( + localPkg *Package + ok bool + ) for _, pkg := range env.pkgs { fmt.Printf(">>> Freezing %s@%s\n", pkg.ImportPath, pkg.Version) @@ -126,7 +129,7 @@ func (env *Env) Freeze() (err error) { if len(env.pkgsUnused) == 0 { fmt.Println(">>> No unused packages found.") - return + goto out } fmt.Printf("\n>>> The following packages will be cleaned,\n\n") @@ -136,13 +139,13 @@ func (env *Env) Freeze() (err error) { fmt.Println() - ok := confirm(os.Stdin, msgContinue, false) - if !ok { - return + ok = confirm(os.Stdin, msgContinue, false) + if ok { + env.cleanUnused() } - env.cleanUnused() - +out: + env.reinstallAll() fmt.Println(">>> Freeze completed.") return @@ -1064,13 +1067,18 @@ func (env *Env) postSync(curPkg, newPkg *Package) (err error) { // (3) if len(curPkg.DepsMissing) == 0 { - err = curPkg.GoInstall() - if err != nil { - return - } + _ = curPkg.GoInstall() } fmt.Println(">>> Package installed:\n", curPkg) return } + +func (env *Env) reinstallAll() { + for _, pkg := range env.pkgs { + if len(pkg.DepsMissing) == 0 { + _ = pkg.GoInstall() + } + } +} @@ -417,8 +417,6 @@ func (pkg *Package) load(sec *ini.Section) { // GoInstall a package recursively ("./..."). // func (pkg *Package) GoInstall() (err error) { - fmt.Println(">>> Running go install ...") - //nolint:gas cmd := exec.Command("go", "install") if Debug >= DebugL2 { @@ -431,9 +429,7 @@ func (pkg *Package) GoInstall() (err error) { cmd.Stdout = defStdout cmd.Stderr = defStderr - if Debug >= DebugL1 { - fmt.Printf(">>> %s %s\n", cmd.Dir, cmd.Args) - } + fmt.Printf(">>> %s %s\n", cmd.Dir, cmd.Args) err = cmd.Run() |
