parent
b700881b43
commit
15bcdb006e
166
main.go
166
main.go
|
@ -2,64 +2,24 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
"os/user"
|
||||||
"strings"
|
|
||||||
|
|
||||||
"go.wit.com/log"
|
"go.wit.com/log"
|
||||||
|
|
||||||
"go.wit.com/gui/gui"
|
"go.wit.com/gui/gui"
|
||||||
"go.wit.com/gui/gadgets"
|
"go.wit.com/gui/gadgets"
|
||||||
"go.wit.com/gui/gadgets/repostatus"
|
"go.wit.com/gui/gadgets/repostatus"
|
||||||
"go.wit.com/apps/control-panel-dns/smartwindow"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var myGui *gui.Node
|
|
||||||
|
|
||||||
var allrepos []*repo
|
|
||||||
|
|
||||||
type repo struct {
|
|
||||||
path string
|
|
||||||
lasttagrev string
|
|
||||||
lasttag string
|
|
||||||
tags []string
|
|
||||||
|
|
||||||
pLabel *gui.Node // path label
|
|
||||||
bLabel *gui.Node // branch label
|
|
||||||
lastLabel *gui.Node // last tagged version label
|
|
||||||
vLabel *gui.Node // version label
|
|
||||||
// tagsDrop *gui.Node // list of all tags
|
|
||||||
dirtyLabel *gui.Node // git state (dirty or not?)
|
|
||||||
|
|
||||||
masterVersion *gui.Node // the master branch version
|
|
||||||
develVersion *gui.Node // the devel branch version
|
|
||||||
jcarrVersion *gui.Node // the jcarr branch version
|
|
||||||
|
|
||||||
cButton *gui.Node // commit button
|
|
||||||
pButton *gui.Node // push button
|
|
||||||
|
|
||||||
status *repostatus.RepoStatus
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
myGui = gui.New().Default()
|
myGui = gui.New().Default()
|
||||||
|
|
||||||
repoworld()
|
repoworld()
|
||||||
|
|
||||||
/*
|
|
||||||
for i, r := range allrepos {
|
|
||||||
log.Warn("scannning", i, r.path)
|
|
||||||
r.scan()
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
gui.Watchdog()
|
gui.Watchdog()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *repo) getPath() string {
|
func addRepo(grid *gui.Node, path string, master string, devel string, user string) {
|
||||||
return r.path
|
|
||||||
}
|
|
||||||
|
|
||||||
func addRepo(grid *gui.Node, path string) {
|
|
||||||
newRepo := new(repo)
|
newRepo := new(repo)
|
||||||
|
|
||||||
if repostatus.VerifyLocalGoRepo(path) {
|
if repostatus.VerifyLocalGoRepo(path) {
|
||||||
|
@ -74,43 +34,16 @@ func addRepo(grid *gui.Node, path string) {
|
||||||
newRepo.bLabel = grid.NewLabel("")
|
newRepo.bLabel = grid.NewLabel("")
|
||||||
newRepo.lastLabel = grid.NewLabel("")
|
newRepo.lastLabel = grid.NewLabel("")
|
||||||
newRepo.vLabel = grid.NewLabel("")
|
newRepo.vLabel = grid.NewLabel("")
|
||||||
// newRepo.tagsDrop = grid.NewDropdown("tags")
|
|
||||||
|
|
||||||
newRepo.masterVersion = grid.NewLabel("")
|
newRepo.masterVersion = grid.NewLabel("")
|
||||||
newRepo.develVersion = grid.NewLabel("")
|
newRepo.develVersion = grid.NewLabel("")
|
||||||
newRepo.jcarrVersion = grid.NewLabel("")
|
newRepo.jcarrVersion = grid.NewLabel("")
|
||||||
newRepo.dirtyLabel = grid.NewLabel("")
|
newRepo.dirtyLabel = grid.NewLabel("")
|
||||||
|
|
||||||
/*
|
|
||||||
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.Vertical()
|
|
||||||
newRepo.status.Horizontal()
|
|
||||||
newRepo.status.Make()
|
|
||||||
newRepo.status.Draw()
|
|
||||||
newRepo.status.Draw2()
|
|
||||||
}
|
|
||||||
newRepo.status.Toggle()
|
|
||||||
})
|
|
||||||
*/
|
|
||||||
newRepo.pButton = grid.NewButton("rescan", func () {
|
newRepo.pButton = grid.NewButton("rescan", func () {
|
||||||
newRepo.newScan()
|
newRepo.newScan()
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
|
||||||
grid.NewButton("Sierpiński", func () {
|
|
||||||
if newRepo.status != nil {
|
|
||||||
log.Warn("status window already exists")
|
|
||||||
}
|
|
||||||
newRepo.status = repostatus.New(myGui, newRepo.path)
|
|
||||||
newRepo.status.Horizontal()
|
|
||||||
newRepo.status.Make()
|
|
||||||
newRepo.status.Make2()
|
|
||||||
})
|
|
||||||
*/
|
|
||||||
grid.NewButton("Toggle()", func () {
|
grid.NewButton("Toggle()", func () {
|
||||||
if newRepo.status == nil {
|
if newRepo.status == nil {
|
||||||
log.Warn("status window doesn't exist")
|
log.Warn("status window doesn't exist")
|
||||||
|
@ -135,6 +68,9 @@ func addRepo(grid *gui.Node, path string) {
|
||||||
newRepo.status.Horizontal()
|
newRepo.status.Horizontal()
|
||||||
newRepo.status.Make()
|
newRepo.status.Make()
|
||||||
newRepo.status.Make2()
|
newRepo.status.Make2()
|
||||||
|
newRepo.status.SetMasterName(master)
|
||||||
|
newRepo.status.SetDevelName(devel)
|
||||||
|
newRepo.status.SetUserName(user)
|
||||||
newRepo.status.Update()
|
newRepo.status.Update()
|
||||||
newRepo.newScan()
|
newRepo.newScan()
|
||||||
allrepos = append(allrepos, newRepo)
|
allrepos = append(allrepos, newRepo)
|
||||||
|
@ -156,96 +92,22 @@ func repoworld() {
|
||||||
// grid.NewLabel("tags")
|
// grid.NewLabel("tags")
|
||||||
grid.NewLabel("master")
|
grid.NewLabel("master")
|
||||||
grid.NewLabel("devel")
|
grid.NewLabel("devel")
|
||||||
grid.NewLabel("jcarr")
|
grid.NewLabel("user")
|
||||||
grid.NewLabel("Status")
|
grid.NewLabel("Status")
|
||||||
grid.NewLabel("commit")
|
grid.NewLabel("commit")
|
||||||
grid.NewLabel("Toggle()")
|
grid.NewLabel("Toggle()")
|
||||||
grid.NewLabel("Draw()")
|
grid.NewLabel("Draw()")
|
||||||
|
|
||||||
repos := myrepolist()
|
repos := myrepolist()
|
||||||
for _, repo := range repos {
|
for _, line := range repos {
|
||||||
log.Warn("repo =", repo)
|
log.Warn("repo =", line)
|
||||||
addRepo(grid, repo)
|
path, mbranch, dbranch, ubranch := splitLine(line)
|
||||||
|
if mbranch == "" { mbranch = "master" }
|
||||||
|
if dbranch == "" { dbranch = "devel" }
|
||||||
|
usr, _ := user.Current()
|
||||||
|
if ubranch == "" { ubranch = usr.Username }
|
||||||
|
addRepo(grid, path, mbranch, dbranch, ubranch)
|
||||||
}
|
}
|
||||||
|
|
||||||
win.Draw()
|
win.Draw()
|
||||||
}
|
}
|
||||||
|
|
||||||
// This creates a window
|
|
||||||
func hellosmart() {
|
|
||||||
win := smartwindow.New()
|
|
||||||
win.SetParent(myGui)
|
|
||||||
win.InitWindow()
|
|
||||||
win.Title("hellosmart test")
|
|
||||||
win.Vertical()
|
|
||||||
win.SetDraw(smartDraw)
|
|
||||||
win.Make()
|
|
||||||
|
|
||||||
win.Box().NewButton("test smartwindow", func () {
|
|
||||||
log.Println("smart")
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func smartDraw(sw *smartwindow.SmartWindow) {
|
|
||||||
sw.Box().NewButton("hello", func () {
|
|
||||||
log.Println("smart")
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func myrepolist() []string {
|
|
||||||
content, _ := ioutil.ReadFile("/home/jcarr/.config/myrepolist")
|
|
||||||
out := string(content)
|
|
||||||
out = strings.TrimSpace(out)
|
|
||||||
lines := strings.Split(out, "\n")
|
|
||||||
return lines
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *repo) newScan() bool {
|
|
||||||
if r.status == nil {
|
|
||||||
log.Warn("repo.status = nil. not initialized for some reason")
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
// r.scan()
|
|
||||||
if repostatus.VerifyLocalGoRepo(r.getPath()) {
|
|
||||||
log.Warn("repo actually exists", r.getPath())
|
|
||||||
} else {
|
|
||||||
log.Warn("repo does not exist", r.getPath())
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
mn := r.status.GetMasterName()
|
|
||||||
mv := r.status.GetMasterVersion()
|
|
||||||
r.masterVersion.Set(mn + " " + mv)
|
|
||||||
|
|
||||||
dn := r.status.GetDevelName()
|
|
||||||
dv := r.status.GetDevelVersion()
|
|
||||||
r.develVersion.Set(dn + " " + dv)
|
|
||||||
|
|
||||||
un := r.status.GetUserName()
|
|
||||||
uv := r.status.GetUserVersion()
|
|
||||||
r.jcarrVersion.Set(un + " " + uv)
|
|
||||||
|
|
||||||
cbname := r.status.GetCurrentBranchName()
|
|
||||||
cbversion := r.status.GetCurrentBranchVersion()
|
|
||||||
ltversion := r.status.GetLastTagVersion()
|
|
||||||
r.lastLabel.Set(cbname + " " + cbversion)
|
|
||||||
r.vLabel.Set(cbname + " " + ltversion)
|
|
||||||
|
|
||||||
if r.status.CheckDirty() {
|
|
||||||
log.Warn("CheckDirty() true")
|
|
||||||
r.dirtyLabel.Set("dirty")
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
log.Warn("CheckDirty() no")
|
|
||||||
r.dirtyLabel.Set("not dirty")
|
|
||||||
|
|
||||||
if r.status.CheckBranches() {
|
|
||||||
log.Warn("Branches are Perfect")
|
|
||||||
r.dirtyLabel.SetText("PEFECT")
|
|
||||||
return true
|
|
||||||
} else {
|
|
||||||
log.Warn("Branches are not Perfect")
|
|
||||||
r.dirtyLabel.SetText("merge")
|
|
||||||
}
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
// This is a simple example
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io/ioutil"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
|
|
||||||
|
"go.wit.com/gui/gadgets/repostatus"
|
||||||
|
"go.wit.com/apps/control-panel-dns/smartwindow"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (r *repo) getPath() string {
|
||||||
|
return r.path
|
||||||
|
}
|
||||||
|
|
||||||
|
func RemoveFirstElement(slice []string) (string, []string) {
|
||||||
|
if len(slice) == 0 {
|
||||||
|
return "", slice // Return the original slice if it's empty
|
||||||
|
}
|
||||||
|
return slice[0], slice[1:] // Return the slice without the first element
|
||||||
|
}
|
||||||
|
|
||||||
|
// returns path, master branch name, devel branch name, user branch name
|
||||||
|
func splitLine(line string) (string, string, string, string) {
|
||||||
|
var path, master, devel, user string
|
||||||
|
parts := strings.Split(line, " ")
|
||||||
|
path, parts = RemoveFirstElement(parts)
|
||||||
|
master, parts = RemoveFirstElement(parts)
|
||||||
|
devel, parts = RemoveFirstElement(parts)
|
||||||
|
user, parts = RemoveFirstElement(parts)
|
||||||
|
// path, master, devel, user := strings.Split(line, " ")
|
||||||
|
return path, master, devel, user
|
||||||
|
}
|
||||||
|
|
||||||
|
// This creates a window
|
||||||
|
func hellosmart() {
|
||||||
|
win := smartwindow.New()
|
||||||
|
win.SetParent(myGui)
|
||||||
|
win.InitWindow()
|
||||||
|
win.Title("hellosmart test")
|
||||||
|
win.Vertical()
|
||||||
|
win.SetDraw(smartDraw)
|
||||||
|
win.Make()
|
||||||
|
|
||||||
|
win.Box().NewButton("test smartwindow", func () {
|
||||||
|
log.Println("smart")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func smartDraw(sw *smartwindow.SmartWindow) {
|
||||||
|
sw.Box().NewButton("hello", func () {
|
||||||
|
log.Println("smart")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func myrepolist() []string {
|
||||||
|
content, _ := ioutil.ReadFile("/home/jcarr/.config/myrepolist")
|
||||||
|
out := string(content)
|
||||||
|
out = strings.TrimSpace(out)
|
||||||
|
lines := strings.Split(out, "\n")
|
||||||
|
return lines
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *repo) newScan() bool {
|
||||||
|
if r.status == nil {
|
||||||
|
log.Warn("repo.status = nil. not initialized for some reason")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// r.scan()
|
||||||
|
if repostatus.VerifyLocalGoRepo(r.getPath()) {
|
||||||
|
log.Warn("repo actually exists", r.getPath())
|
||||||
|
} else {
|
||||||
|
log.Warn("repo does not exist", r.getPath())
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
mn := r.status.GetMasterName()
|
||||||
|
mv := r.status.GetMasterVersion()
|
||||||
|
r.masterVersion.Set(mn + " " + mv)
|
||||||
|
|
||||||
|
dn := r.status.GetDevelName()
|
||||||
|
dv := r.status.GetDevelVersion()
|
||||||
|
r.develVersion.Set(dn + " " + dv)
|
||||||
|
|
||||||
|
un := r.status.GetUserName()
|
||||||
|
uv := r.status.GetUserVersion()
|
||||||
|
r.jcarrVersion.Set(un + " " + uv)
|
||||||
|
|
||||||
|
cbname := r.status.GetCurrentBranchName()
|
||||||
|
cbversion := r.status.GetCurrentBranchVersion()
|
||||||
|
ltversion := r.status.GetLastTagVersion()
|
||||||
|
r.lastLabel.Set(cbname + " " + cbversion)
|
||||||
|
r.vLabel.Set(cbname + " " + ltversion)
|
||||||
|
|
||||||
|
if r.status.CheckDirty() {
|
||||||
|
log.Warn("CheckDirty() true")
|
||||||
|
r.dirtyLabel.Set("dirty")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
log.Warn("CheckDirty() no")
|
||||||
|
r.dirtyLabel.Set("not dirty")
|
||||||
|
|
||||||
|
if r.status.CheckBranches() {
|
||||||
|
log.Warn("Branches are Perfect")
|
||||||
|
r.dirtyLabel.SetText("PEFECT")
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
log.Warn("Branches are not Perfect")
|
||||||
|
r.dirtyLabel.SetText("merge")
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
// This is a simple example
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
// "os/user"
|
||||||
|
// "io/ioutil"
|
||||||
|
// "strings"
|
||||||
|
|
||||||
|
// "go.wit.com/log"
|
||||||
|
|
||||||
|
"go.wit.com/gui/gui"
|
||||||
|
// "go.wit.com/gui/gadgets"
|
||||||
|
"go.wit.com/gui/gadgets/repostatus"
|
||||||
|
// "go.wit.com/apps/control-panel-dns/smartwindow"
|
||||||
|
)
|
||||||
|
|
||||||
|
var myGui *gui.Node
|
||||||
|
|
||||||
|
var allrepos []*repo
|
||||||
|
|
||||||
|
type repo struct {
|
||||||
|
path string
|
||||||
|
lasttagrev string
|
||||||
|
lasttag string
|
||||||
|
tags []string
|
||||||
|
|
||||||
|
pLabel *gui.Node // path label
|
||||||
|
bLabel *gui.Node // branch label
|
||||||
|
lastLabel *gui.Node // last tagged version label
|
||||||
|
vLabel *gui.Node // version label
|
||||||
|
// tagsDrop *gui.Node // list of all tags
|
||||||
|
dirtyLabel *gui.Node // git state (dirty or not?)
|
||||||
|
|
||||||
|
masterVersion *gui.Node // the master branch version
|
||||||
|
develVersion *gui.Node // the devel branch version
|
||||||
|
jcarrVersion *gui.Node // the jcarr branch version
|
||||||
|
|
||||||
|
cButton *gui.Node // commit button
|
||||||
|
pButton *gui.Node // push button
|
||||||
|
|
||||||
|
status *repostatus.RepoStatus
|
||||||
|
}
|
Loading…
Reference in New Issue