set and read CLI flags for filename & publish

This commit is contained in:
2025-01-18 12:08:26 +01:00
parent b885893879
commit a6c909a673
2 changed files with 42 additions and 12 deletions

36
config/cli.go Normal file
View File

@@ -0,0 +1,36 @@
package config
import (
"flag"
"fmt"
"os"
)
var (
filename string
)
func ParseCli() (string, *bool) {
flag.StringVar(&filename, "filename", "", "path of config")
publish := flag.Bool("publish", false, "publish etcd messages")
flag.Parse()
args := os.Args[1:]
if len(args) == 0 {
// no command, exit with code 2 (invalid usage)
fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])
flag.PrintDefaults()
os.Exit(2)
}
if len(filename) < 1 {
fmt.Fprintf(os.Stderr, "Filename required. Usage:\n")
flag.PrintDefaults()
os.Exit(2)
}
return filename, publish
}

18
main.go
View File

@@ -13,21 +13,14 @@ import (
"github.com/kevinmidboe/traefik-etcd-advertiser/generator"
)
func getArgvFilename() string {
if len(os.Args) < 2 {
log.Fatalf("Usage: %s <path-to-yaml-file>\n", os.Args[0])
}
filename := os.Args[1]
return filename
}
func main() {
_, 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 {
@@ -36,8 +29,6 @@ func main() {
var packets []etcd.EtcdPacket
// parse traefik config from file
filename := getArgvFilename()
if strings.Contains(filename, "docker-compose.yml") {
// build etcd packets from docker-compose config
dockerConfig, err := generator.ParseDockerCompose(filename)
@@ -74,6 +65,9 @@ func main() {
etcd.RemoveDuplicatePackets(&packets)
for _, packet := range packets {
log.Println(packet)
// etcdManager.Put(packet.Key, packet.Value)
if *publish {
etcdManager.Put(packet.Key, packet.Value)
}
}
}