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 }