diff --git a/.gitignore b/.gitignore index 528694a..796b96d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1 @@ -*.swp -*~ -/*.cov -node_modules +/build diff --git a/.testandcover.bash b/.testandcover.bash index 8f88b18..572daea 100755 --- a/.testandcover.bash +++ b/.testandcover.bash @@ -8,6 +8,8 @@ function die() { export GOPATH=`pwd`:$GOPATH +make + # Initialize profile.cov echo "mode: count" > profile.cov diff --git a/.travis.yml b/.travis.yml index c943565..a02a8cb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ go: before_install: - sudo apt-get install cgroup-bin + - go get github.com/smartystreets/goconvey - go get golang.org/x/tools/cmd/cover - go get -v github.com/mattn/goveralls diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b4f9aae --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +LDFLAGS="-X main.buildstamp=`date -u '+%s'` -X main.githash=`git rev-parse HEAD`" + +all: get tunasync tunasynctl + +get: + go get ./cmd/tunasync + go get ./cmd/tunasynctl + +build: + mkdir -p build + +tunasync: build + go build -o build/tunasync -ldflags ${LDFLAGS} github.com/tuna/tunasync/cmd/tunasync + +tunasynctl: build + go build -o build/tunasynctl -ldflags ${LDFLAGS} github.com/tuna/tunasync/cmd/tunasynctl diff --git a/cmd/tunasync/tunasync.go b/cmd/tunasync/tunasync.go index 3cd0c20..0a29552 100644 --- a/cmd/tunasync/tunasync.go +++ b/cmd/tunasync/tunasync.go @@ -1,8 +1,10 @@ package main import ( + "fmt" "os" "os/signal" + "strconv" "syscall" "time" @@ -16,6 +18,11 @@ import ( "github.com/tuna/tunasync/worker" ) +var ( + buildstamp = "" + githash = "No githash provided" +) + var logger = logging.MustGetLogger("tunasync") func startManager(c *cli.Context) { @@ -99,6 +106,28 @@ func startWorker(c *cli.Context) { } func main() { + + cli.VersionPrinter = func(c *cli.Context) { + var builddate string + if buildstamp == "" { + builddate = "No build date provided" + } else { + ts, err := strconv.Atoi(buildstamp) + if err != nil { + builddate = "No build date provided" + } else { + t := time.Unix(int64(ts), 0) + builddate = t.String() + } + } + fmt.Printf( + "Version: %s\n"+ + "Git Hash: %s\n"+ + "Build Date: %s\n", + c.App.Version, githash, builddate, + ) + } + app := cli.NewApp() app.EnableBashCompletion = true app.Version = "0.1" diff --git a/cmd/tunasynctl/tunasynctl.go b/cmd/tunasynctl/tunasynctl.go index 4578204..71f4751 100644 --- a/cmd/tunasynctl/tunasynctl.go +++ b/cmd/tunasynctl/tunasynctl.go @@ -6,7 +6,9 @@ import ( "io/ioutil" "net/http" "os" + "strconv" "strings" + "time" "github.com/BurntSushi/toml" "github.com/codegangsta/cli" @@ -15,6 +17,11 @@ import ( tunasync "github.com/tuna/tunasync/internal" ) +var ( + buildstamp = "" + githash = "No githash provided" +) + const ( listJobsPath = "/jobs" listWorkersPath = "/workers" @@ -259,6 +266,27 @@ func cmdWorker(cmd tunasync.CmdVerb) cli.ActionFunc { } func main() { + cli.VersionPrinter = func(c *cli.Context) { + var builddate string + if buildstamp == "" { + builddate = "No build date provided" + } else { + ts, err := strconv.Atoi(buildstamp) + if err != nil { + builddate = "No build date provided" + } else { + t := time.Unix(int64(ts), 0) + builddate = t.String() + } + } + fmt.Printf( + "Version: %s\n"+ + "Git Hash: %s\n"+ + "Build Date: %s\n", + c.App.Version, githash, builddate, + ) + } + app := cli.NewApp() app.EnableBashCompletion = true app.Version = "0.1"