summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--git.go49
-rw-r--r--main.go43
-rw-r--r--unix.go37
3 files changed, 95 insertions, 34 deletions
diff --git a/git.go b/git.go
index 76d34bc..1c57f46 100644
--- a/git.go
+++ b/git.go
@@ -38,14 +38,20 @@ func (r *repo) getBranch() {
}
func (r *repo) checkDirty() bool {
+ if r.path == "" {
+ log.Warn("disable spaceholders")
+ r.cButton.Disable()
+ r.pButton.Disable()
+ return false
+ }
out := run(r.path, "git", "diff-index HEAD")
if out == "" {
r.dirtyLabel.SetText("")
- r.pButton.Disable()
+ r.pButton.SetText("scan")
return false
} else {
r.dirtyLabel.SetText("dirty")
- r.pButton.Enable()
+ r.pButton.SetText("scan")
return true
}
@@ -83,7 +89,7 @@ func (r *repo) populateTags() {
for _, tag := range r.tags {
r.tagsDrop.AddText(tag)
}
- r.tagsDrop.SetText(r.lasttag)
+ // r.tagsDrop.SetText(r.lasttag)
}
func (r *repo) scan() {
@@ -91,9 +97,42 @@ func (r *repo) scan() {
r.getLastTagVersion()
r.getCurrentBranchName()
r.getCurrentBranchVersion()
- r.checkDirty()
-
r.populateTags()
+ if r.checkDirty() {
+ return
+ }
+ r.checkoutBranch("master")
+ r.checkoutBranch("devel")
+ r.checkoutBranch("jcarr")
+
+ lasttag := r.lastLabel.GetText()
+ master := r.masterVersion.GetText()
+ devel := r.develVersion.GetText()
+ jcarr := r.jcarrVersion.GetText()
+
+ log.Warn("")
+ log.Warn("lasttag =", lasttag)
+ log.Warn("master =", master)
+ log.Warn("devel =", devel)
+ log.Warn("jcarr =", jcarr)
+
+ r.dirtyLabel.SetText("garbage")
+
+ if devel != master {
+ log.Warn("devel version != master version", devel, "vs", master)
+ r.dirtyLabel.SetText("merge")
+ return
+ }
+ if lasttag != master {
+ log.Warn("last tag rev != master version", lasttag, "vs", master)
+ r.dirtyLabel.SetText("merge")
+ return
+ }
+ if lasttag == jcarr {
+ log.Warn("last tag rev == jcarr version", lasttag, "vs", jcarr)
+ r.dirtyLabel.SetText("GOOD")
+ return
+ }
}
func checkrepos() {
diff --git a/main.go b/main.go
index d814277..6813a45 100644
--- a/main.go
+++ b/main.go
@@ -43,13 +43,8 @@ type repo struct {
func main() {
myGui = gui.New().Default()
- helloworld()
+ repoworld()
checkrepos()
- for _, r := range allrepos {
- r.checkoutBranch("master")
- r.checkoutBranch("devel")
- r.checkoutBranch("jcarr")
- }
gui.Watchdog()
}
@@ -70,6 +65,7 @@ func addRepo(grid *gui.Node, path string) *repo {
newRepo.cButton = grid.NewButton("status", func () {
log.Println("repo status for", newRepo.path)
+ newRepo.scan()
if newRepo.status == nil {
newRepo.status = repostatus.New(myGui, newRepo.path)
newRepo.status.InitWindow()
@@ -80,23 +76,27 @@ func addRepo(grid *gui.Node, path string) *repo {
newRepo.status.Toggle()
})
newRepo.pButton = grid.NewButton("push", func () {
- log.Println("push")
+ newRepo.scan()
})
- if path == "" { return newRepo }
+ if path == "" {
+ newRepo.cButton.Hide()
+ newRepo.pButton.Hide()
+ return newRepo
+ }
allrepos = append(allrepos, newRepo)
return newRepo
}
// This creates a window
-func helloworld() {
- win := gadgets.NewBasicWindow(myGui, "helloworld golang wit/gui window")
+func repoworld() {
+ win := gadgets.NewBasicWindow(myGui, "git autotypist. it types faster than you can.")
box := win.Box().NewBox("bw vbox", false)
box2 := win.Box().NewBox("bw vbox", false)
- group := box.NewGroup("test")
+ group := box.NewGroup("go repositories (read from ~/.config/myrepolist)")
grid := group.NewGrid("test", 11, 1)
- grid.NewLabel("go repo")
+ grid.NewLabel("")
grid.NewLabel("branch")
grid.NewLabel("last tag")
grid.NewLabel("Version")
@@ -104,7 +104,7 @@ func helloworld() {
grid.NewLabel("master")
grid.NewLabel("devel")
grid.NewLabel("jcarr")
- grid.NewLabel("is dirty?")
+ grid.NewLabel("Status")
grid.NewLabel("commit")
grid.NewLabel("push to")
@@ -125,21 +125,6 @@ func helloworld() {
}
mystatus.Toggle()
})
- box2.NewButton("checkout jcarr (all repos)", func () {
- for _, r := range allrepos {
- r.checkoutBranch("jcarr")
- }
- })
- box2.NewButton("checkout devel (all repos)", func () {
- for _, r := range allrepos {
- r.checkoutBranch("devel")
- }
- })
- box2.NewButton("checkout master (all repos)", func () {
- for _, r := range allrepos {
- r.checkoutBranch("master")
- }
- })
box2.NewButton("hello", func () {
log.Println("world")
hellosmart()
@@ -151,7 +136,7 @@ func hellosmart() {
win := smartwindow.New()
win.SetParent(myGui)
win.InitWindow()
- win.Title("helloworld golang wit/gui window")
+ win.Title("hellosmart test")
win.Vertical()
win.SetDraw(smartDraw)
win.Make()
diff --git a/unix.go b/unix.go
index cbf6b28..7c9f8db 100644
--- a/unix.go
+++ b/unix.go
@@ -57,3 +57,40 @@ func listFiles(directory string) []string {
return files
}
+
+func runCmd(path string, cmdline string) (bool, string) {
+ parts := strings.Split(cmdline, " ")
+ if len(parts) == 0 {
+ log.Warn("command line was empty")
+ return false, ""
+ }
+ if parts[0] == "" {
+ log.Warn("command line was empty")
+ return false, ""
+ }
+ thing := parts[0]
+ parts = parts[1:]
+
+ log.Warn("path =", path, "thing =", thing, "cmdline =", parts)
+ return false, ""
+ // Create the command
+ cmd := exec.Command(thing, parts...)
+
+ // Set the working directory
+ cmd.Dir = fullpath(path)
+
+ // Execute the command
+ output, err := cmd.CombinedOutput()
+ if err != nil {
+ log.Error(err)
+ log.Warn("output was", output)
+ log.Warn("cmd exited with error", err)
+ return false, string(output)
+ }
+
+ tmp := string(output)
+ tmp = strings.TrimSpace(tmp)
+
+ // Print the output
+ return true, tmp
+}