summaryrefslogtreecommitdiff
path: root/debian.go
diff options
context:
space:
mode:
Diffstat (limited to 'debian.go')
-rw-r--r--debian.go112
1 files changed, 48 insertions, 64 deletions
diff --git a/debian.go b/debian.go
index b01bed9..a3a879b 100644
--- a/debian.go
+++ b/debian.go
@@ -11,81 +11,65 @@ import (
"go.wit.com/log"
)
-func buildDeb() {
- var counter int
- if int(argv.Max) == 0 {
- argv.Max = 50
- }
-
- initForge()
-
- all := me.forge.Repos.SortByFullPath()
- for all.Scan() {
- var cmd []string
- check := all.Next()
-
- outdir := getOutdir(check)
- os.MkdirAll(outdir, 0755)
+func buildDeb(check *gitpb.Repo) error {
+ var cmd []string
- if me.forge.Config.IsReadOnly(check.GetGoPath()) {
- continue
- }
-
- if !check.IsBinary() {
- continue
- }
+ outdir := getOutdir(check)
+ os.MkdirAll(outdir, 0755)
- if check.IsGoPlugin() {
- continue
- }
+ if me.forge.Config.IsReadOnly(check.GetGoPath()) {
+ return nil
+ }
- if argv.Release {
- cmd = []string{"go-deb", "--release", "--dir", outdir}
- } else {
- cmd = []string{"go-deb", "--dir", outdir}
- }
- if me.forge.Config.IsPrivate(check.GetGoPath()) {
- cmd = []string{"go-deb", "--dir", outdir}
- continue
- }
+ if !check.IsBinary() {
+ return nil
+ }
- if argv.Verbose {
- log.Info("build cmd:", cmd)
- cmd = append(cmd, "--verbose")
- }
- if argv.DryRun {
- continue
- }
+ if check.IsGoPlugin() {
+ return nil
+ }
- if argv.Force {
- // build everything no matter what
- } else {
- if state[check] != "need to build" {
- // log.Info("skipping build for", check.GetGoPath(), state[check])
- continue
- }
- }
+ if argv.Release {
+ cmd = []string{"go-deb", "--release", "--dir", outdir}
+ } else {
+ cmd = []string{"go-deb", "--dir", outdir}
+ }
+ if me.forge.Config.IsPrivate(check.GetGoPath()) {
+ cmd = []string{"go-deb", "--dir", outdir}
+ return nil
+ }
- counter += 1
+ if argv.Verbose {
+ // log.Info("build cmd:", cmd)
+ cmd = append(cmd, "--verbose")
+ }
+ if argv.DryRun {
+ return nil
+ }
- if counter > int(argv.Max) {
- log.Info("did --max builds", argv.Max)
- okExit("")
+ if argv.Force {
+ // build everything no matter what
+ } else {
+ if state[check] != "need to build" {
+ // log.Info("skipping build for", check.GetGoPath(), state[check])
+ return nil
}
+ }
- if argv.MacBuild != nil {
- log.Info("todo: add mac builds")
- continue
- }
+ if argv.MacBuild != nil {
+ log.Info("todo: add mac builds")
+ return nil
+ }
- if err := check.RunVerbose(cmd); err != nil {
- log.Info(check.FullPath, cmd)
- failed[check] = fmt.Sprint("godeb failed", cmd, "with", err)
- badExit(err)
- } else {
- log.Info("build worked")
- }
+ var err error
+ if _, err = check.RunVerboseOnError(cmd); err != nil {
+ log.Info(check.FullPath, cmd)
+ failed[check] = fmt.Sprint("godeb failed", cmd, "with", err)
+ return err
}
+
+ log.Info("build worked", cmd, check.FullPath)
+ return nil
}
func getOutdir(repo *gitpb.Repo) string {