111 lines
2.2 KiB
Go
111 lines
2.2 KiB
Go
package main
|
|
|
|
// This should build and upload the binary to mirrors
|
|
|
|
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")
|
|
|
|
// set epoch, version,
|
|
// set build cloud-control-panel
|
|
|
|
// get build time
|
|
// go build -ldflags
|
|
// "
|
|
// -X main.GITCOMMIT=${GITCOMMIT}
|
|
// -X main.GOVERSION='${GOVERSION}'
|
|
// -X main.BUILDTIME='${BUILDTIME}'
|
|
// -X main.VERSION=${VERSION}
|
|
// "
|
|
|
|
// upload binary to mirrors.wit.com/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 {
|
|
build()
|
|
os.Exit(0)
|
|
time.Sleep(time.Second * 5)
|
|
}
|
|
}
|
|
|
|
|
|
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
|
|
}
|