summaryrefslogtreecommitdiff
path: root/globalBuildOptions.go
blob: 4fd8ee74b9ab263cc7001225e0164cb7a6f53383 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package main

import (
	"os"
	"os/user"
	"path/filepath"

	"go.wit.com/log"

	"go.wit.com/gui"
	"go.wit.com/lib/gadgets"
	"go.wit.com/lib/gui/repostatus"
)

func doesExist(path string) bool {
	if _, err := os.Stat(path); err != nil {
		if os.IsNotExist(err) {
			return false
		}
	}
	return true
}

// only errors on bad errors
func quickCmd(fullpath string, cmd []string) bool {
	var err error
	var b bool
	var output string

	if me.autoWorkingPwd.String() != fullpath {
		me.autoWorkingPwd.SetValue(fullpath)
	}

	if me.autoDryRun.Checked() {
		log.Warn("RUN --dry-run", fullpath, cmd)
		return false
	} else {
		log.Warn("RUN:", fullpath, cmd)
	}

	err, b, output = repostatus.RunCmd(fullpath, cmd)
	if err != nil {
		log.Warn("cmd =", cmd)
		log.Warn("err =", err)
		log.Warn("b =", b)
		log.Warn("output =", string(output))
		return false
	} else if !b {
		log.Warn("b =", b)
		log.Warn("output =", string(output))
		return true
	}
	log.Warn("output = ", string(output))
	return true
}

func globalBuildOptions(box *gui.Node) {
	vbox := box.NewVerticalBox("DISPLAYVBOX")
	group1 := vbox.NewGroup("Global Build Options")
	grid := group1.NewGrid("buildOptions", 2, 1)

	me.autoWorkingPwd = gadgets.NewOneLiner(grid, "working directory (pwd)")
	me.userHomePwd = gadgets.NewOneLiner(grid, "user home")
	me.goSrcPwd = gadgets.NewOneLiner(grid, "go src home")

	usr, _ := user.Current()
	homeDir, err := os.UserHomeDir()
	if err != nil {
		log.Warn("Error getting home directory:", err)
		homeDir = "/home/autotypist"
	}
	me.userHomePwd.SetText(homeDir)
	srcDir := filepath.Join(homeDir, "go/src")
	me.goSrcPwd.SetText(srcDir)

	me.mainBranch = gadgets.NewBasicCombobox(grid, "default main branch")
	me.mainBranch.AddText("gitea server default")
	me.mainBranch.Disable()

	me.develBranch = gadgets.NewBasicCombobox(grid, "default devel branch")
	me.develBranch.AddText("devel")

	me.userBranch = gadgets.NewBasicCombobox(grid, "default user branch")
	me.userBranch.AddText(usr.Username)

	var newBranch *gui.Node
	var setBranchB *gui.Node

	// gadgets.OneLiner(grid, "default user branch")

	// select the branch you want to test, build and develop against
	// this lets you select your user branch, but, when you are happy
	// you can merge everything into the devel branch and make sure it actually
	// works. Then, when that is good, merge and version everything in master
	setBranchB = grid.NewButton("set current branch to:", func() {
		log.Warn("set current branch to:", newBranch.String())
		/*
			me.toMoveToBranch = guiBranch.String()
			setCurrentBranch.SetLabel("set all branches to " + me.toMoveToBranch)
			me.mainBranch.Disable()
		*/
		for _, repo := range me.allrepos {
			if repo.status.CheckoutMaster() {
				log.Warn("set master branch worked", repo.String)
				repo.newScan()
			} else {
				log.Warn("set master branch failed", repo.String)
				repo.newScan()
			}
			// return
		}
	})
	newBranch = grid.NewCombobox()
	newBranch.AddText("master")
	newBranch.AddText("devel")
	newBranch.AddText(usr.Username)
	newBranch.SetText(usr.Username)
	newBranch.Custom = func() {
		setBranchB.SetLabel("set current branches to " + newBranch.String())
	}
}