diff --git a/gen_version.sh b/gen_version.sh new file mode 100755 index 0000000..333c95f --- /dev/null +++ b/gen_version.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +v=$(git tag --contains HEAD) +if [ "$v" = "" ]; then + echo "Cannot determine tag." >&2 + exit 1 +fi + +v=$(echo "$v" | sed -Ee 's#^v(.*)#\1#') + +cat <version.go +// Code generated by gen_version.sh, DO NOT EDIT. + +package main + +//go:generate sh -c ./gen_version.sh + +const version = "$v" +END diff --git a/main.go b/main.go index afd961a..1d67ee5 100644 --- a/main.go +++ b/main.go @@ -9,7 +9,7 @@ import ( "github.com/fatih/color" "github.com/spf13/pflag" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/kubernetes" _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" @@ -29,6 +29,7 @@ func main() { raw bool tmplString string sinceStart bool + showVersion bool includePatterns []*regexp.Regexp excludePatternStrings []string ) @@ -55,12 +56,18 @@ func main() { flags.BoolVarP(&quiet, "quiet", "q", false, "Don't print events about new/deleted pods") flags.BoolVarP(&sinceStart, "since-start", "s", false, "Start reading log from the beginning of the container's lifetime.") + flags.BoolVarP(&showVersion, "version", "", false, "Show version.") if err := flags.Parse(os.Args[1:]); err != nil { fail(err.Error()) os.Exit(1) } + if showVersion { + fmt.Printf("ktail %s\n", version) + os.Exit(0) + } + var excludePatterns []*regexp.Regexp for _, p := range excludePatternStrings { r, err := regexp.Compile(p) diff --git a/version.go b/version.go new file mode 100644 index 0000000..ca7e1d4 --- /dev/null +++ b/version.go @@ -0,0 +1,7 @@ +// Code generated by gen_version.sh, DO NOT EDIT. + +package main + +//go:generate sh -c ./gen_version.sh + +const version = "1.0.0"