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)
}

18
main.go
View File

@@ -10,20 +10,16 @@ import (
"github.com/kevinmidboe/traefik-etcd-advertiser/generator"
)
var Version = "v0.1-dev"
func main() {
filename, publish := config.ParseCli(Version)
_, err := config.LoadConfig()
if err != nil {
log.Fatalf("Error from config loader: %s", err)
}
filename, publish := config.ParseCli()
// setup etcd client
etcdManager, err := etcd.NewClient()
if err != nil {
panic(err)
}
var packets []etcd.EtcdPacket
if strings.Contains(filename, "docker-compose.yml") {
@@ -58,6 +54,12 @@ func main() {
log.Println(packet)
if *publish {
// setup etcd client
etcdManager, err := etcd.NewClient()
if err != nil {
panic(err)
}
etcdManager.Put(packet.Key, packet.Value)
}
}