cmd/age,cmd/age-keygen: add -version flag

Fixes #157
Fixes #101
Closes #97
This commit is contained in:
Filippo Valsorda
2021-01-03 09:10:21 -05:00
committed by Filippo Valsorda
parent f8507c1cac
commit 0522803919
3 changed files with 45 additions and 5 deletions
+19
View File
@@ -11,20 +11,39 @@ import (
"fmt"
"log"
"os"
"runtime/debug"
"time"
"filippo.io/age"
"golang.org/x/crypto/ssh/terminal"
)
// Version can be set at link time to override debug.BuildInfo.Main.Version,
// which is "(devel)" when building from within the module. See
// golang.org/issue/29814 and golang.org/issue/29228.
var Version string
func main() {
log.SetFlags(0)
outFlag := flag.String("o", "", "output to `FILE` (default stdout)")
versionFlag := flag.Bool("version", false, "print the version")
flag.Parse()
if len(flag.Args()) != 0 {
log.Fatalf("age-keygen takes no arguments")
}
if *versionFlag {
if Version != "" {
fmt.Println(Version)
return
}
if buildInfo, ok := debug.ReadBuildInfo(); ok {
fmt.Println(buildInfo.Main.Version)
return
}
fmt.Println("(unknown)")
return
}
out := os.Stdout
if name := *outFlag; name != "" {