add -version flag & update help text

This commit is contained in:
2025-01-19 18:23:36 +01:00
parent a43fa53721
commit 3f7db7d700
2 changed files with 41 additions and 15 deletions

View File

@@ -6,29 +6,53 @@ import (
"os"
)
var (
filename string
)
var filename string
const applicationName = "traefik-etcd-advertiser"
func setupHelpMessage() {
flag.Usage = func() {
helpMessage()
}
}
func helpMessage() {
fmt.Fprintf(os.Stderr, "Usage:\n %s [OPTIONS]\n\n", applicationName)
fmt.Fprintf(os.Stderr, "Options:\n")
flag.PrintDefaults()
fmt.Fprintf(os.Stderr, "\nHelp Options:\n -h, --help\tShow this help message")
}
func printVersion(v string) {
fmt.Printf("Version: %s\n", v)
}
func ParseCli(version string) (string, *bool) {
setupHelpMessage()
func ParseCli() (string, *bool) {
flag.StringVar(&filename, "filename", "", "path of config")
publish := flag.Bool("publish", false, "publish etcd messages")
versionFlag := flag.Bool("version", false, "print version information")
flag.Parse()
args := os.Args[1:]
if *versionFlag {
printVersion(version)
os.Exit(0)
}
if len(args) == 0 {
// no command, exit with code 2 (invalid usage)
fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])
helpMessage()
flag.PrintDefaults()
os.Exit(2)
}
if len(filename) < 1 {
fmt.Fprintf(os.Stderr, "Filename required. Usage:\n")
flag.PrintDefaults()
helpMessage()
os.Exit(2)
}