summaryrefslogtreecommitdiff
path: root/doInstall.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-03 13:47:01 -0500
committerJeff Carr <[email protected]>2025-10-03 13:47:01 -0500
commite4b679003ce0847dd65254a5e0a0b3239fd0d566 (patch)
tree6d5ce5b6db6349ad5022656732d044137a624339 /doInstall.go
parent888ef5304907d0e8a98472a31728b5398972b647 (diff)
mv and merge
Diffstat (limited to 'doInstall.go')
-rw-r--r--doInstall.go188
1 files changed, 0 insertions, 188 deletions
diff --git a/doInstall.go b/doInstall.go
deleted file mode 100644
index 28e1189..0000000
--- a/doInstall.go
+++ /dev/null
@@ -1,188 +0,0 @@
-// 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"
- "path/filepath"
-
- "go.wit.com/lib/gui/shell"
- "go.wit.com/lib/protobuf/gitpb"
- "go.wit.com/log"
-)
-
-func doBuild() error {
- if argv.Build.Install != nil {
- if err := doInstall(); err != nil {
- log.Info("doInstall() failed", err)
- badExit(err)
- }
- okExit("EVERYTHING BUILT!")
- }
-
- if argv.Build.MacBuild != nil {
- log.Info("todo: add mac builds")
- return nil
- }
-
- if argv.Build.Debian != nil {
- doDebian()
- okExit("")
- }
-
- return nil
-}
-
-func doInstallRepo(check *gitpb.Repo) error {
- repotype := check.GetRepoType()
- if repotype == "binary" || repotype == "plugin" {
- // we only want to process things that can be compiled with 'go build'
- } else {
- // log.Info("skipping repo", check.GetGoPath(), repotype)
- return nil
- }
-
- if me.forge.Config.IsReadOnly(check.GetGoPath()) {
- // ignore read only stuff
- return nil
- }
-
- if argv.Verbose || argv.Force {
- verbose := []string{"-v", "-x"}
- if err := me.forge.Install(check, verbose); err != nil {
- log.Warn("INSTALL FAILED", check.GetGoPath(), err)
- failed[check] = fmt.Sprintf("%s %s %v", "go install", check.GetGoPath(), err)
- return err
- }
- } else {
- if err := me.forge.Install(check, nil); err != nil {
- log.Warn("INSTALL FAILED", check.GetGoPath(), err)
- failed[check] = fmt.Sprintf("%s %s %v", "go install", check.GetGoPath(), err)
- return err
- }
- }
- return nil
-}
-
-func doInstallScan() {
- initForge() // make sure forge is init'd here
-
- all := me.forge.Repos.SortByFullPath()
- for all.Scan() {
- check := all.Next()
-
- repotype := check.GetRepoType()
- if repotype == "binary" || repotype == "plugin" {
- // we only want to process things that can be compiled with 'go build'
- } else {
- // log.Info("skipping repo", check.GetGoPath(), repotype)
- continue
- }
-
- if me.forge.Config.IsReadOnly(check.GetGoPath()) {
- // ignore read only stuff
- continue
- }
-
- // var cmd []string
- var start string
- var end string
-
- // add te repotype
- end += check.GetRepoType()
-
- manufactured := check.GetCurrentVersion()
- ver := trimNonNumericFromStart(manufactured)
- name := me.forge.Config.DebName(check.GetGoPath())
- var realver string
- if installedPackage := me.machine.FindInstalledByName(name); installedPackage != nil {
- realver = installedPackage.Version
- }
- if actualp := me.machine.FindByVersion(name, ver); actualp != nil {
- end += " (version match) " + actualp.Version + " " + ver + " "
- state[check] = "on mirrors"
- } else {
- if realver != "" {
- end += fmt.Sprintf(" (version miss) %s vs %s ", realver, ver)
- }
- // end += "" + ver + " "
- }
- if me.machine.IsInstalled(name) {
- if actualp := me.machine.FindInstalledByName(name); actualp != nil {
- if ver != actualp.Version {
- end += "(installed " + actualp.Version + ") "
- } else {
- end += "(installed ok) "
- }
- } else {
- end += "(installed) "
- }
- }
-
- debname := name + "_" + ver + "_amd64.deb"
- debnames[check] = debname
- outdir := getOutdir(check)
- _, err := os.Stat(filepath.Join(outdir, debname))
- if err == nil {
- // log.Info("exists", filepath.Join(outdir, debname))
- state[check] = "in incoming"
- } else {
- // log.Info(debname, "does not exist")
- }
-
- if state[check] == "" {
- state[check] = "need to build"
- }
- start = fmt.Sprintf("%-15s %-20s %-50s", state[check], ver, debname)
-
- if state[check] == "need to build" {
- end += " (will build) "
- }
-
- log.Info(start, end)
- if name == "" {
- // err := fmt.Sprintf("name is blank error %+v", repo)
- log.Warn("name is blank error", check.GetGoPath())
- }
- }
-}
-
-func doInstall() error {
- initForge()
-
- found := gitpb.NewRepos()
- for check := range me.forge.Repos.IterAll() {
- if me.forge.Config.IsReadOnly(check.GetGoPath()) {
- continue
- }
-
- if !check.IsBinary() {
- continue
- }
-
- if check.IsGoPlugin() {
- continue
- }
- found.Append(check)
- }
- me.forge.PrintForgedTable(found)
-
- if argv.DryRun {
- doInstallScan()
- okExit("")
- }
-
- me.forge.ConfigRill(16, 16)
- stats := me.forge.RunOnRepos(found, doInstallRepo)
- for s, stat := range stats {
- if stat.Err == nil {
- continue
- }
- dur := stat.End.Sub(stat.Start)
- log.Info("CRAP. INSTALL FAILED", shell.FormatDuration(dur), s, stat.Err)
- badExit(stat.Err)
- }
- return nil
-}