summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go246
1 files changed, 125 insertions, 121 deletions
diff --git a/main.go b/main.go
index d39b174..018446d 100644
--- a/main.go
+++ b/main.go
@@ -4,7 +4,6 @@
package main
import (
- "errors"
"fmt"
"os"
"path/filepath"
@@ -103,164 +102,169 @@ func main() {
}
doListRepos()
+
if argv.DebBuild != nil {
buildDeb()
okExit("")
}
+
if argv.MakeInstall != nil {
if err := doInstall(); err != nil {
log.Info("doInstall() failed", err)
badExit(err)
- } else {
- okExit("EVERYTHING BUILT!")
}
+ okExit("EVERYTHING BUILT!")
}
- all := me.forge.Repos.SortByFullPath()
- for all.Scan() {
- check := all.Next()
+ if argv.Test {
+ homeDir, _ := os.UserHomeDir()
- 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
- }
+ testdir := filepath.Join(homeDir, "go/src/go.wit.com/apps/utils/wit-utils/go-clone-test/")
+ os.Chdir(testdir)
+ shell.RunRealtime([]string{"go", "install"})
- if me.forge.Config.IsReadOnly(check.GetGoPath()) {
- // ignore read only stuff
- continue
+ workdir := filepath.Join(homeDir, "gowork")
+ if err := os.MkdirAll(workdir, os.ModePerm); err != nil {
+ badExit(err)
}
+ os.Chdir(workdir)
+ shell.RunRealtime([]string{"go-clone-test"})
+ }
- // var cmd []string
- var start string
- var end string
+ okExit("everything compiled")
- // add te repotype
- end += check.GetRepoType()
+ /*
+ all := me.forge.Repos.SortByFullPath()
+ for all.Scan() {
+ check := all.Next()
- manufactured := check.GetCurrentVersion()
- ver := trimNonNumericFromStart(manufactured)
- name := me.forge.Config.DebName(check.GetGoPath())
- var realver string
- if installedPackage := me.forge.Machine.FindInstalledByName(name); installedPackage != nil {
- realver = installedPackage.Version
- }
- if actualp := me.forge.Machine.FindVersion(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)
+ 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
}
- // end += "" + ver + " "
- }
- if me.forge.Machine.IsInstalled(name) {
- if actualp := me.forge.Machine.FindInstalledByName(name); actualp != nil {
- if ver != actualp.Version {
- end += "(installed " + actualp.Version + ") "
+
+ 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.forge.Machine.FindInstalledByName(name); installedPackage != nil {
+ realver = installedPackage.Version
+ }
+ if actualp := me.forge.Machine.FindVersion(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.forge.Machine.IsInstalled(name) {
+ if actualp := me.forge.Machine.FindInstalledByName(name); actualp != nil {
+ if ver != actualp.Version {
+ end += "(installed " + actualp.Version + ") "
+ } else {
+ end += "(installed ok) "
+ }
} else {
- end += "(installed ok) "
+ end += "(installed) "
}
- } 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")
- }
+ 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] == "" {
+ state[check] = "need to build"
+ }
+ start = fmt.Sprintf("%-15s %-20s %-50s", state[check], ver, debname)
- if state[check] == "need to build" {
- end += " (will build) "
- }
+ 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())
- }
+ log.Info(start, end)
+ if name == "" {
+ // err := fmt.Sprintf("name is blank error %+v", repo)
+ log.Warn("name is blank error", check.GetGoPath())
+ }
- if argv.DryRun {
- continue
- }
- if argv.TestBuild != nil {
if argv.DryRun {
continue
}
- if argv.Verbose {
- verbose := []string{"-v", "-x"}
- if err := me.forge.Build(check, verbose); err != nil {
- log.Warn("BUILD FAILED", check.GetGoPath(), err)
- failed[check] = fmt.Sprintf("%s %s %v", "go build", check.GetGoPath(), err)
+ if argv.TestBuild != nil {
+ if argv.DryRun {
+ continue
}
- } else {
- if err := me.forge.Build(check, nil); err != nil {
- log.Warn("BUILD FAILED", check.GetGoPath(), err)
- failed[check] = fmt.Sprintf("%s %s %v", "go build", check.GetGoPath(), err)
+ if argv.Verbose {
+ verbose := []string{"-v", "-x"}
+ if err := me.forge.Build(check, verbose); err != nil {
+ log.Warn("BUILD FAILED", check.GetGoPath(), err)
+ failed[check] = fmt.Sprintf("%s %s %v", "go build", check.GetGoPath(), err)
+ }
+ } else {
+ if err := me.forge.Build(check, nil); err != nil {
+ log.Warn("BUILD FAILED", check.GetGoPath(), err)
+ failed[check] = fmt.Sprintf("%s %s %v", "go build", check.GetGoPath(), err)
+ }
}
- }
- continue
- }
-
- if argv.MakeInstall != nil {
- log.Info("STARTING 'make install' in", check.GetGoPath())
- if argv.DryRun {
continue
}
- if argv.Verbose {
- 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)
+
+ if argv.MakeInstall != nil {
+ log.Info("STARTING 'make install' in", check.GetGoPath())
+ if argv.DryRun {
+ continue
}
- } 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)
+ if argv.Verbose {
+ 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)
+ }
+ } 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)
+ }
}
+ continue
}
- continue
}
- }
- if len(failed) != 0 {
- log.Info("")
- log.Info("something failed on:")
- for repo, cmd := range failed {
- log.Info("failed cmd :", cmd, repo.GetGoPath())
- }
- // me.forge.CheckoutUser()
- // shell.Run([]string{"forge", "--find-private"})
- badExit(errors.New("some repos failed"))
- }
- if argv.Test {
- homeDir, _ := os.UserHomeDir()
-
- testdir := filepath.Join(homeDir, "go/src/go.wit.com/apps/utils/wit-utils/go-clone-test/")
- os.Chdir(testdir)
- shell.RunRealtime([]string{"go", "install"})
-
- workdir := filepath.Join(homeDir, "gowork")
- if err := os.MkdirAll(workdir, os.ModePerm); err != nil {
- badExit(err)
+ if len(failed) != 0 {
+ log.Info("")
+ log.Info("something failed on:")
+ for repo, cmd := range failed {
+ log.Info("failed cmd :", cmd, repo.GetGoPath())
+ }
+ // me.forge.CheckoutUser()
+ // shell.Run([]string{"forge", "--find-private"})
+ badExit(errors.New("some repos failed"))
}
- os.Chdir(workdir)
- shell.RunRealtime([]string{"go-clone-test"})
- }
- okExit("everything compiled")
+ */
}
// this is dumb. sync this with go-deb