update bee pack add custom build args

This commit is contained in:
slene 2013-12-23 16:45:20 +08:00
parent 723ddb4060
commit 743c86099d
1 changed files with 22 additions and 10 deletions

32
pack.go
View File

@ -43,6 +43,7 @@ compress an beego project
-p app path. default is current path -p app path. default is current path
-b build specify platform app. default true -b build specify platform app. default true
-ba additional args of go build
-o compressed file output dir. default use current path -o compressed file output dir. default use current path
-f format. [ tar.gz / zip ]. default tar.gz. note: zip doesn't support embed symlink, skip it -f format. [ tar.gz / zip ]. default tar.gz. note: zip doesn't support embed symlink, skip it
-exp path exclude prefix -exp path exclude prefix
@ -56,15 +57,16 @@ compress an beego project
} }
var ( var (
appPath string appPath string
excludeP string excludeP string
excludeS string excludeS string
outputP string outputP string
fsym bool fsym bool
ssym bool ssym bool
build bool build bool
verbose bool buildArgs string
format string verbose bool
format string
) )
func init() { func init() {
@ -74,6 +76,7 @@ func init() {
fs.StringVar(&excludeS, "exs", ".go:.DS_Store:.tmp", "") fs.StringVar(&excludeS, "exs", ".go:.DS_Store:.tmp", "")
fs.StringVar(&outputP, "o", "", "") fs.StringVar(&outputP, "o", "", "")
fs.BoolVar(&build, "b", true, "") fs.BoolVar(&build, "b", true, "")
fs.StringVar(&buildArgs, "ba", "", "")
fs.BoolVar(&fsym, "fs", false, "") fs.BoolVar(&fsym, "fs", false, "")
fs.BoolVar(&ssym, "ss", false, "") fs.BoolVar(&ssym, "ss", false, "")
fs.BoolVar(&verbose, "v", false, "") fs.BoolVar(&verbose, "v", false, "")
@ -477,7 +480,16 @@ func packApp(cmd *Command, args []string) {
binPath += ".exe" binPath += ".exe"
} }
execmd := exec.Command(gobin, "build", "-o", binPath) args := []string{"build", "-o", binPath}
if len(buildArgs) > 0 {
args = append(args, strings.Fields(buildArgs)...)
}
if verbose {
fmt.Println(gobin, " ", strings.Join(args, " "))
}
execmd := exec.Command(gobin, args...)
execmd.Stdout = os.Stdout execmd.Stdout = os.Stdout
execmd.Stderr = os.Stderr execmd.Stderr = os.Stderr
execmd.Dir = thePath execmd.Dir = thePath