summaryrefslogtreecommitdiff
path: root/forgeConfig/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'forgeConfig/main.go')
-rw-r--r--forgeConfig/main.go133
1 files changed, 133 insertions, 0 deletions
diff --git a/forgeConfig/main.go b/forgeConfig/main.go
new file mode 100644
index 0000000..36b0b71
--- /dev/null
+++ b/forgeConfig/main.go
@@ -0,0 +1,133 @@
+package main
+
+import (
+ "os"
+
+ "go.wit.com/lib/protobuf/forgepb"
+ "go.wit.com/log"
+)
+
+// sent via ldflags
+var VERSION string
+
+func main() {
+ f := forgepb.Init()
+
+ if argv.List {
+ f.ConfigPrintTable()
+ loop := f.Config.SortByGoPath() // get the list of forge configs
+ for loop.Scan() {
+ r := loop.Next()
+ log.Info("repo:", r.GoPath)
+ }
+ os.Exit(0)
+ }
+
+ // try to delete, then save config and exit
+ if argv.Delete {
+ if f.Config.DeleteByGoPath(argv.GoPath) {
+ log.Info("deleted", argv.GoPath, "did not exist. did nothing")
+ os.Exit(0)
+ }
+ log.Info("deleted", argv.GoPath, "ok")
+ f.ConfigSave()
+ os.Exit(0)
+ }
+
+ // try to update, then save config and exit
+ if argv.Update {
+ /*
+ if f.UpdateGoPath(argv.Name, argv.GoPath) {
+ // save updated config file
+ repos.ConfigSave()
+ }
+ */
+ os.Exit(0)
+ }
+
+ // try to add, then save config and exit
+ if argv.Add {
+ log.Info("going to add a new repo", argv.GoPath)
+ new1 := forgepb.ForgeConfig{
+ GoPath: argv.GoPath,
+ Writable: argv.Writable,
+ ReadOnly: argv.ReadOnly,
+ Private: argv.Private,
+ Directory: argv.Directory,
+ Favorite: argv.Favorite,
+ Interesting: argv.Interesting,
+ }
+
+ if f.Config.Append(&new1) {
+ log.Info("added", new1.GoPath, "ok")
+ } else {
+ log.Info("added", new1.GoPath, "failed")
+ os.Exit(-1)
+ }
+ f.ConfigSave()
+ os.Exit(0)
+ }
+
+ // testMemoryCorruption(f)
+ f.ConfigSave()
+}
+
+/*
+// this fucks shit up
+func testMemoryCorruption(all *forgepb.Repos) *forgepb.Repos {
+ new1 := new(forgepb.Repo)
+ new1.Name = "bash1"
+ new1.Version = "5.2.21"
+ if all.Append(new1) {
+ log.Info("added", new1.Name, "ok")
+ } else {
+ log.Info("added", new1.Name, "failed")
+ }
+
+ new1 = new(forgepb.Repo)
+ new1.Name = "zookeeper1"
+ new1.Debname = "zookeeper-go"
+ if all.Append(new1) {
+ log.Info("added", new1.Name, "ok")
+ } else {
+ log.Info("added", new1.Name, "failed")
+ }
+
+ new1 = new(forgepb.Repo)
+ new1.Name = "wit-package"
+ new1.Private = true
+ if all.Append(new1) {
+ log.Info("added", new1.Name, "ok")
+ } else {
+ log.Info("added", new1.Name, "failed")
+ }
+
+ new1 = new(forgepb.Repo)
+ new1.Name = "networkQuality"
+ new1.Debname = "networkquality"
+ new1.Readonly = true
+ if all.Append(new1) {
+ log.Info("added", new1.Name, "ok")
+ } else {
+ log.Info("added", new1.Name, "failed")
+ }
+
+ new2 := new(forgepb.Repo)
+ new2.Name = "go-clone"
+ new2.Version = "0.6.8" // good version of the macos
+ if all.Append(new2) {
+ log.Info("added", new2.Name, "ok")
+ } else {
+ log.Info("added", new2.Name, "failed")
+ }
+
+ if all.Append(new2) {
+ log.Info("added", new2.Name, "ok (this is bad)")
+ } else {
+ log.Info("added", new2.Name, "failed (but ok)")
+ }
+
+ fmt.Println("packages are:", len(all.Repos))
+ return all
+}
+*/