cloud-control-panel/build/main.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
}