diff options
Diffstat (limited to 'doDebian.go')
| -rw-r--r-- | doDebian.go | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/doDebian.go b/doDebian.go index 8d6aa3e..acd2eae 100644 --- a/doDebian.go +++ b/doDebian.go @@ -71,3 +71,81 @@ func doDebian() { exitOnErrorRealtime([]string{"do-aptly"}) } + +func buildDeb(check *gitpb.Repo) error { + var cmd []string + + outdir := getOutdir(check) + os.MkdirAll(outdir, 0755) + + if me.forge.Config.IsReadOnly(check.GetGoPath()) { + return nil + } + + if !check.IsBinary() { + return nil + } + + if check.IsGoPlugin() { + 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} + return nil + } + + if argv.Verbose || argv.Force { + // log.Info("build cmd:", cmd) + cmd = append(cmd, "--verbose") + } + if argv.DryRun { + 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]) + return nil + } + } + + 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 { + if me.forge.Config.IsPrivate(repo.GetGoPath()) { + return "/home/jcarr/incoming-private" + } + if argv.Force { + return "/home/jcarr/incoming" + } + if repo.GetLastTag() != repo.GetMasterVersion() { + return "/home/jcarr/incoming-devel" + } + + if repo.GetCurrentBranchVersion() != repo.GetMasterVersion() { + return "/home/jcarr/incoming-devel" + } + + if repo.CheckDirty() { + return "/home/jcarr/incoming-devel" + } + + return "/home/jcarr/incoming" +} |
