diff options
| author | Jeff Carr <[email protected]> | 2025-10-03 01:05:11 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-03 01:05:11 -0500 |
| commit | 4acdb3bce3d7afb5f9218ac958b235358493563c (patch) | |
| tree | 7b7c16bdf5efac5413f0003356208864e348d43e /debian.go | |
| parent | 01fa86c6f69dc7f34b92f98c0d45ff93c324da9f (diff) | |
more autocomplete work
Diffstat (limited to 'debian.go')
| -rw-r--r-- | debian.go | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/debian.go b/debian.go new file mode 100644 index 0000000..3b21991 --- /dev/null +++ b/debian.go @@ -0,0 +1,106 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +import ( + "fmt" + "os" + + "go.wit.com/lib/protobuf/gitpb" + "go.wit.com/log" +) + +func buildDeb() { + var counter int + if int(argv.Max) == 0 { + argv.Max = 50 + } + + all := me.forge.Repos.SortByFullPath() + for all.Scan() { + var cmd []string + check := all.Next() + + outdir := getOutdir(check) + os.MkdirAll(outdir, 0755) + + if me.forge.Config.IsReadOnly(check.GetGoPath()) { + continue + } + + if !check.IsBinary() { + continue + } + + if check.IsGoPlugin() { + 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} + continue + } + + if argv.Verbose { + log.Info("build cmd:", cmd) + cmd = append(cmd, "--verbose") + } + if argv.DryRun { + continue + } + + 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 + } + } + + counter += 1 + + if counter > int(argv.Max) { + log.Info("did --max builds", argv.Max) + okExit("") + } + + if argv.MacBuild != nil { + log.Info("todo: add mac builds") + continue + } + + 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") + } + } +} + +func getOutdir(repo *gitpb.Repo) string { + 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" + } + + if me.forge.Config.IsPrivate(repo.GetGoPath()) { + return "/home/jcarr/incoming-private" + } + return "/home/jcarr/incoming" +} |
