121 lines
2.5 KiB
Go
121 lines
2.5 KiB
Go
package main
|
|
|
|
import "log"
|
|
// import "fmt"
|
|
import "os"
|
|
import "os/user"
|
|
import "time"
|
|
import "runtime"
|
|
// import "io/ioutil"
|
|
// import "strings"
|
|
|
|
// github.com/bramvdbogaerde/go-scp
|
|
|
|
import "github.com/davecgh/go-spew/spew"
|
|
|
|
import "git.wit.com/wit/shell"
|
|
|
|
var filename string
|
|
var builddir string
|
|
var homedir string
|
|
|
|
func main() {
|
|
os.Chdir("~/go/src/wit/cloud-control-panel")
|
|
|
|
setupUser()
|
|
|
|
log.Println("homedir", homedir)
|
|
log.Println("builddir", builddir)
|
|
log.Println("filename", filename)
|
|
|
|
shell.Run("pwd")
|
|
s, _ := os.Getwd()
|
|
log.Println("Getwd()", s)
|
|
os.Chdir(builddir)
|
|
log.Println("Getwd()", s)
|
|
shell.Run("pwd")
|
|
|
|
for {
|
|
time.Sleep(time.Second * 5)
|
|
build()
|
|
os.Exit(0)
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
// slow down the polling to every 2 seconds
|
|
shell.SetDelayInMsec(2000)
|
|
shell.Run("ping -c 6 localhost")
|
|
|
|
// capture ping output into a file
|
|
fout, _ := os.Create("/tmp/example1.ping.stdout")
|
|
ferr, _ := os.Create("/tmp/example1.ping.stderr")
|
|
shell.SetStdout(fout)
|
|
shell.SetStderr(ferr)
|
|
|
|
shell.Run("ping -c 5 localhost")
|
|
|
|
// turn out process exit debugging
|
|
shell.SpewOn()
|
|
|
|
fout, _ = os.Create("/tmp/example1.fail.stdout")
|
|
ferr, _ = os.Create("/tmp/example1.fail.stderr")
|
|
shell.SetStdout(fout)
|
|
shell.SetStderr(ferr)
|
|
|
|
// TODO: this might not be working
|
|
// check error handling
|
|
shell.Run("ls /tmpthisisnothere")
|
|
*/
|
|
|
|
func build() {
|
|
// shell.SetDelayInMsec(50)
|
|
shell.Run("go get -v .")
|
|
|
|
// -ldflags -H=windowsgui
|
|
shell.Run("rm " + filename)
|
|
if runtime.GOOS == "windows" {
|
|
shell.Run("go build -ldflags -H=windowsgui")
|
|
} else {
|
|
shell.Run("go build")
|
|
}
|
|
output := shell.Run("ls -l")
|
|
shell.Run("cat VERSION")
|
|
|
|
log.Println("output =", output)
|
|
}
|
|
|
|
func ping() {
|
|
shell.SetDelayInMsec(2000)
|
|
shell.Run("ping -c 6 localhost")
|
|
}
|
|
|
|
|
|
// func setupUser() string, string, string {
|
|
func setupUser() {
|
|
// look up the user information
|
|
user, err := user.Current()
|
|
if err != nil {
|
|
os.Exit(-1)
|
|
}
|
|
spew.Dump(user)
|
|
|
|
// TODO: confirm this is correct for MacOS and Windows
|
|
if runtime.GOOS == "linux" {
|
|
log.Println("loadConfigFile() OS: Linux")
|
|
filename = "cloud-control-panel"
|
|
builddir = user.HomeDir + "/go/src/git.wit.com/wit/cloud-control-panel"
|
|
} else if runtime.GOOS == "windows" {
|
|
log.Println("loadConfigFile() OS: Windows")
|
|
builddir = user.HomeDir + "\\go\\src\\git.wit.com\\wit\\cloud-control-panel"
|
|
filename = "cloud-control-panel.exe"
|
|
} else {
|
|
log.Println("loadConfigFile() OS: " + runtime.GOOS)
|
|
builddir = user.HomeDir + "/go/src/git.wit.com/wit/cloud-control-panel"
|
|
filename = "cloud-control-panel"
|
|
}
|
|
|
|
homedir = user.HomeDir
|
|
}
|