1
0
mirror of https://github.com/golang/go synced 2024-11-22 03:24:41 -07:00

goinstall: add -clean flag

R=adg, rsc
CC=golang-dev
https://golang.org/cl/3821042
This commit is contained in:
Kyle Lemons 2011-01-05 14:34:59 -05:00 committed by Russ Cox
parent c22c6daca0
commit ddc2710d69
2 changed files with 16 additions and 6 deletions

View File

@ -41,6 +41,7 @@ var (
reportToDashboard = flag.Bool("dashboard", true, "report public packages at "+dashboardURL)
logPkgs = flag.Bool("log", true, "log installed packages to $GOROOT/goinstall.log for use by -a")
update = flag.Bool("u", false, "update already-downloaded packages")
clean = flag.Bool("clean", false, "clean the package directory before installing")
verbose = flag.Bool("v", false, "verbose")
)

View File

@ -17,18 +17,27 @@ import (
// For non-local packages or packages without Makefiles,
// domake generates a standard Makefile and passes it
// to make on standard input.
func domake(dir, pkg string, local bool) os.Error {
func domake(dir, pkg string, local bool) (err os.Error) {
needMakefile := true
if local {
_, err := os.Stat(dir + "/Makefile")
if err == nil {
return run(dir, nil, "gomake", "install")
needMakefile = false
}
}
makefile, err := makeMakefile(dir, pkg)
if err != nil {
cmd := []string{"gomake"}
var makefile []byte
if needMakefile {
if makefile, err = makeMakefile(dir, pkg); err != nil {
return err
}
return run(dir, makefile, "gomake", "-f-", "install")
cmd = append(cmd, "-f-")
}
if *clean {
cmd = append(cmd, "clean")
}
cmd = append(cmd, "install")
return run(dir, makefile, cmd...)
}
// makeMakefile computes the standard Makefile for the directory dir