parent
348f01091c
commit
0d23f7271a
49
git.go
49
git.go
|
@ -38,14 +38,20 @@ func (r *repo) getBranch() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *repo) checkDirty() bool {
|
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")
|
out := run(r.path, "git", "diff-index HEAD")
|
||||||
if out == "" {
|
if out == "" {
|
||||||
r.dirtyLabel.SetText("")
|
r.dirtyLabel.SetText("")
|
||||||
r.pButton.Disable()
|
r.pButton.SetText("scan")
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
r.dirtyLabel.SetText("dirty")
|
r.dirtyLabel.SetText("dirty")
|
||||||
r.pButton.Enable()
|
r.pButton.SetText("scan")
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,7 +89,7 @@ func (r *repo) populateTags() {
|
||||||
for _, tag := range r.tags {
|
for _, tag := range r.tags {
|
||||||
r.tagsDrop.AddText(tag)
|
r.tagsDrop.AddText(tag)
|
||||||
}
|
}
|
||||||
r.tagsDrop.SetText(r.lasttag)
|
// r.tagsDrop.SetText(r.lasttag)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *repo) scan() {
|
func (r *repo) scan() {
|
||||||
|
@ -91,9 +97,42 @@ func (r *repo) scan() {
|
||||||
r.getLastTagVersion()
|
r.getLastTagVersion()
|
||||||
r.getCurrentBranchName()
|
r.getCurrentBranchName()
|
||||||
r.getCurrentBranchVersion()
|
r.getCurrentBranchVersion()
|
||||||
r.checkDirty()
|
|
||||||
|
|
||||||
r.populateTags()
|
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() {
|
func checkrepos() {
|
||||||
|
|
43
main.go
43
main.go
|
@ -43,13 +43,8 @@ type repo struct {
|
||||||
func main() {
|
func main() {
|
||||||
myGui = gui.New().Default()
|
myGui = gui.New().Default()
|
||||||
|
|
||||||
helloworld()
|
repoworld()
|
||||||
checkrepos()
|
checkrepos()
|
||||||
for _, r := range allrepos {
|
|
||||||
r.checkoutBranch("master")
|
|
||||||
r.checkoutBranch("devel")
|
|
||||||
r.checkoutBranch("jcarr")
|
|
||||||
}
|
|
||||||
gui.Watchdog()
|
gui.Watchdog()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,6 +65,7 @@ func addRepo(grid *gui.Node, path string) *repo {
|
||||||
|
|
||||||
newRepo.cButton = grid.NewButton("status", func () {
|
newRepo.cButton = grid.NewButton("status", func () {
|
||||||
log.Println("repo status for", newRepo.path)
|
log.Println("repo status for", newRepo.path)
|
||||||
|
newRepo.scan()
|
||||||
if newRepo.status == nil {
|
if newRepo.status == nil {
|
||||||
newRepo.status = repostatus.New(myGui, newRepo.path)
|
newRepo.status = repostatus.New(myGui, newRepo.path)
|
||||||
newRepo.status.InitWindow()
|
newRepo.status.InitWindow()
|
||||||
|
@ -80,23 +76,27 @@ func addRepo(grid *gui.Node, path string) *repo {
|
||||||
newRepo.status.Toggle()
|
newRepo.status.Toggle()
|
||||||
})
|
})
|
||||||
newRepo.pButton = grid.NewButton("push", func () {
|
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)
|
allrepos = append(allrepos, newRepo)
|
||||||
return newRepo
|
return newRepo
|
||||||
}
|
}
|
||||||
|
|
||||||
// This creates a window
|
// This creates a window
|
||||||
func helloworld() {
|
func repoworld() {
|
||||||
win := gadgets.NewBasicWindow(myGui, "helloworld golang wit/gui window")
|
win := gadgets.NewBasicWindow(myGui, "git autotypist. it types faster than you can.")
|
||||||
|
|
||||||
box := win.Box().NewBox("bw vbox", false)
|
box := win.Box().NewBox("bw vbox", false)
|
||||||
box2 := 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 := group.NewGrid("test", 11, 1)
|
||||||
|
|
||||||
grid.NewLabel("go repo")
|
grid.NewLabel("")
|
||||||
grid.NewLabel("branch")
|
grid.NewLabel("branch")
|
||||||
grid.NewLabel("last tag")
|
grid.NewLabel("last tag")
|
||||||
grid.NewLabel("Version")
|
grid.NewLabel("Version")
|
||||||
|
@ -104,7 +104,7 @@ func helloworld() {
|
||||||
grid.NewLabel("master")
|
grid.NewLabel("master")
|
||||||
grid.NewLabel("devel")
|
grid.NewLabel("devel")
|
||||||
grid.NewLabel("jcarr")
|
grid.NewLabel("jcarr")
|
||||||
grid.NewLabel("is dirty?")
|
grid.NewLabel("Status")
|
||||||
grid.NewLabel("commit")
|
grid.NewLabel("commit")
|
||||||
grid.NewLabel("push to")
|
grid.NewLabel("push to")
|
||||||
|
|
||||||
|
@ -125,21 +125,6 @@ func helloworld() {
|
||||||
}
|
}
|
||||||
mystatus.Toggle()
|
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 () {
|
box2.NewButton("hello", func () {
|
||||||
log.Println("world")
|
log.Println("world")
|
||||||
hellosmart()
|
hellosmart()
|
||||||
|
@ -151,7 +136,7 @@ func hellosmart() {
|
||||||
win := smartwindow.New()
|
win := smartwindow.New()
|
||||||
win.SetParent(myGui)
|
win.SetParent(myGui)
|
||||||
win.InitWindow()
|
win.InitWindow()
|
||||||
win.Title("helloworld golang wit/gui window")
|
win.Title("hellosmart test")
|
||||||
win.Vertical()
|
win.Vertical()
|
||||||
win.SetDraw(smartDraw)
|
win.SetDraw(smartDraw)
|
||||||
win.Make()
|
win.Make()
|
||||||
|
|
37
unix.go
37
unix.go
|
@ -57,3 +57,40 @@ func listFiles(directory string) []string {
|
||||||
|
|
||||||
return files
|
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
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue