61a9e72f4c7276771d4ae966918358c27b90bc23 — Drew DeVault 6 months ago b342425 0.1.3
Add aerc -v to print the installed version
3 files changed, 28 insertions(+), 1 deletions(-)

M Makefile
M aerc.go
M doc/aerc.1.scd
M Makefile => Makefile +4 -0
@@ 1,6 1,9 @@
 .POSIX:
 .SUFFIXES:
 .SUFFIXES: .1 .5 .7 .1.scd .5.scd .7.scd
+
+VERSION?=0.1.1
+
 VPATH=doc
 PREFIX?=/usr/local
 _INSTDIR=$(DESTDIR)$(PREFIX)


@@ 16,6 19,7 @@ aerc: $(GOSRC)
 	go build $(GOFLAGS) \
 		-ldflags "-X main.Prefix=$(PREFIX)" \
 		-ldflags "-X main.ShareDir=$(SHAREDIR)" \
+		-ldflags "-X main.Version=$(VERSION)" \
 		-o $@
 
 aerc.conf: config/aerc.conf.in

M aerc.go => aerc.go +18 -0
@@ 8,6 8,7 @@ import (
 	"os"
 	"time"
 
+	"git.sr.ht/~sircmpwn/getopt"
 	"github.com/mattn/go-isatty"
 
 	"git.sr.ht/~sircmpwn/aerc/commands"


@@ 53,9 54,26 @@ func getCommands(selected libui.Drawable) []*commands.Commands {
 var (
 	Prefix   string
 	ShareDir string
+	Version  string
 )
 
 func main() {
+	// TODO: Support starting with mailto links, ad-hoc accounts, etc
+	opts, optind, err := getopt.Getopts(os.Args, "v")
+	if err != nil {
+		panic(err)
+	}
+	for _, opt := range opts {
+		switch opt.Option {
+		case 'v':
+			fmt.Println("aerc " + Version)
+			return
+		}
+	}
+	if optind != len(os.Args) {
+		log.Fatal("Usage: aerc [-v]")
+	}
+
 	var (
 		logOut io.Writer
 		logger *log.Logger

M doc/aerc.1.scd => doc/aerc.1.scd +6 -1
@@ 6,10 6,15 @@ aerc - the world's best email client
 
 # SYNOPSIS
 
-_aerc_
+_aerc_ [-v]
 
 For a guided tutorial, use *:help tutorial*.
 
+# OPTIONS
+
+*-v*
+	Prints the installed version of aerc and exits.
+
 # RUNTIME COMMANDS
 
 To execute a command, press ':' to bring up the command interface. Commands may