From 74af57b6c617382ed0e8cd79626cac98ffc2e549 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Tue, 18 Jun 2019 09:42:41 -0400 Subject: [PATCH] Add aerc -v to print the installed version --- Makefile | 4 ++++ aerc.go | 18 ++++++++++++++++++ doc/aerc.1.scd | 7 ++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a2f92f6..b4f105a 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/aerc.go b/aerc.go index ffce931..20e2bb1 100644 --- a/aerc.go +++ b/aerc.go @@ -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 diff --git a/doc/aerc.1.scd b/doc/aerc.1.scd index 88dab34..4fdd91a 100644 --- a/doc/aerc.1.scd +++ b/doc/aerc.1.scd @@ -6,11 +6,16 @@ aerc - the world's best email client # SYNOPSIS -_aerc_ +_aerc_ [-v] For a guided tutorial, use *:help tutorial* from aerc, or *man aerc-tutorial* from your terminal. +# 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