Add -version option

Fixes #33
This commit is contained in:
Zachary Yedidia 2016-04-19 13:40:30 -04:00
parent f0ad01d1ec
commit 87108bfed8
4 changed files with 34 additions and 13 deletions

View file

@ -1,8 +1,10 @@
.PHONY: runtime
VERSION = "$(shell git rev-parse --short HEAD)"
build: runtime
go get -d ./cmd/micro
go build -o micro ./cmd/micro
go build -ldflags "-X main.Version=$(VERSION)" -o micro ./cmd/micro
install: build runtime
mv micro $(GOPATH)/bin

View file

@ -111,6 +111,10 @@ You can move the cursor around with the arrow keys and mouse.
You can also use the mouse to manipulate the text. Simply clicking and dragging will select text. You can also double click
to enable word selection, and triple click to enable line selection.
You can also run `$ micro -version` to get the version number. Since there is no release, this just gives you the
commit hash. The version is unknown if you built with `go get`, instead use `make install` or `make` to get a binary
with a version number defined.
# Configuration
Configuration directory:

View file

@ -1,6 +1,7 @@
package main
import (
"flag"
"fmt"
"io/ioutil"
"os"
@ -33,6 +34,10 @@ var (
// This should be $XDG_CONFIG_HOME/micro
// If $XDG_CONFIG_HOME is not set, it is ~/.config/micro
configDir string
// Version is the version number.
// This should be set by the linker
Version = "Unknown"
)
// LoadInput loads the file input for the editor
@ -101,7 +106,15 @@ func InitConfigDir() {
}
}
var flagVersion = flag.Bool("version", false, "Show version number")
func main() {
flag.Parse()
if *flagVersion {
fmt.Println("Micro version:", Version)
os.Exit(0)
}
filename, input, err := LoadInput()
if err != nil {
fmt.Println(err)

View file

@ -6,53 +6,55 @@ mkdir -p micro
cp LICENSE micro
cp README.md micro
VERSION="$(git rev-parse --short HEAD)"
# Mac
echo "OSX 64"
GOOS=darwin GOARCH=amd64 go build -o micro/micro ./cmd/micro
GOOS=darwin GOARCH=amd64 go build -ldflags "-X main.Version=$VERSION" -o micro/micro ./cmd/micro
tar -czf micro-osx.tar.gz micro
mv micro-osx.tar.gz binaries
# Linux
echo "Linux 64"
GOOS=linux GOARCH=amd64 go build -o micro/micro ./cmd/micro
GOOS=linux GOARCH=amd64 go build -ldflags "-X main.Version=$VERSION" -o micro/micro ./cmd/micro
tar -czf micro-linux64.tar.gz micro
mv micro-linux64.tar.gz binaries
echo "Linux 32"
GOOS=linux GOARCH=386 go build -o micro/micro ./cmd/micro
GOOS=linux GOARCH=386 go build -ldflags "-X main.Version=$VERSION" -o micro/micro ./cmd/micro
tar -czf micro-linux32.tar.gz micro
mv micro-linux32.tar.gz binaries
echo "Linux arm"
GOOS=linux GOARCH=arm go build -o micro/micro ./cmd/micro
GOOS=linux GOARCH=arm go build -ldflags "-X main.Version=$VERSION" -o micro/micro ./cmd/micro
tar -czf micro-linux-arm.tar.gz micro
mv micro-linux-arm.tar.gz binaries
# NetBSD
echo "NetBSD 64"
GOOS=netbsd GOARCH=amd64 go build -o micro/micro ./cmd/micro
GOOS=netbsd GOARCH=amd64 go build -ldflags "-X main.Version=$VERSION" -o micro/micro ./cmd/micro
tar -czf micro-netbsd64.tar.gz micro
mv micro-netbsd64.tar.gz binaries
echo "NetBSD 32"
GOOS=netbsd GOARCH=386 go build -o micro/micro ./cmd/micro
GOOS=netbsd GOARCH=386 go build -ldflags "-X main.Version=$VERSION" -o micro/micro ./cmd/micro
tar -czf micro-netbsd32.tar.gz micro
mv micro-netbsd32.tar.gz binaries
# OpenBSD
echo "OpenBSD 64"
GOOS=openbsd GOARCH=amd64 go build -o micro/micro ./cmd/micro
GOOS=openbsd GOARCH=amd64 go build -ldflags "-X main.Version=$VERSION" -o micro/micro ./cmd/micro
tar -czf micro-openbsd64.tar.gz micro
mv micro-openbsd64.tar.gz binaries
echo "OpenBSD 32"
GOOS=openbsd GOARCH=386 go build -o micro/micro ./cmd/micro
GOOS=openbsd GOARCH=386 go build -ldflags "-X main.Version=$VERSION" -o micro/micro ./cmd/micro
tar -czf micro-openbsd32.tar.gz micro
mv micro-openbsd32.tar.gz binaries
# FreeBSD
echo "FreeBSD 64"
GOOS=freebsd GOARCH=amd64 go build -o micro/micro ./cmd/micro
GOOS=freebsd GOARCH=amd64 go build -ldflags "-X main.Version=$VERSION" -o micro/micro ./cmd/micro
tar -czf micro-freebsd64.tar.gz micro
mv micro-freebsd64.tar.gz binaries
echo "FreeBSD 32"
GOOS=freebsd GOARCH=386 go build -o micro/micro ./cmd/micro
GOOS=freebsd GOARCH=386 go build -ldflags "-X main.Version=$VERSION" -o micro/micro ./cmd/micro
tar -czf micro-freebsd32.tar.gz micro
mv micro-freebsd32.tar.gz binaries
@ -60,11 +62,11 @@ rm micro/micro
# Windows
echo "Windows 64"
GOOS=windows GOARCH=amd64 go build -o micro/micro.exe ./cmd/micro
GOOS=windows GOARCH=amd64 go build -ldflags "-X main.Version=$VERSION" -o micro/micro.exe ./cmd/micro
zip -r -q -T micro-win64.zip micro
mv micro-win64.zip binaries
echo "Windows 32"
GOOS=windows GOARCH=386 go build -o micro/micro.exe ./cmd/micro
GOOS=windows GOARCH=386 go build -ldflags "-X main.Version=$VERSION" -o micro/micro.exe ./cmd/micro
zip -r -q -T micro-win32.zip micro
mv micro-win32.zip binaries