mirror of
https://github.com/KevinMidboe/traefik-etcd-advertiser.git
synced 2025-10-29 18:00:19 +00:00
set and read CLI flags for filename & publish
This commit is contained in:
36
config/cli.go
Normal file
36
config/cli.go
Normal 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
18
main.go
@@ -13,21 +13,14 @@ import (
|
|||||||
"github.com/kevinmidboe/traefik-etcd-advertiser/generator"
|
"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() {
|
func main() {
|
||||||
_, err := config.LoadConfig()
|
_, err := config.LoadConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Error from config loader: %s", err)
|
log.Fatalf("Error from config loader: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
filename, publish := config.ParseCli()
|
||||||
|
|
||||||
// setup etcd client
|
// setup etcd client
|
||||||
// etcdManager, err := etcd.NewClient()
|
// etcdManager, err := etcd.NewClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -36,8 +29,6 @@ func main() {
|
|||||||
|
|
||||||
var packets []etcd.EtcdPacket
|
var packets []etcd.EtcdPacket
|
||||||
|
|
||||||
// parse traefik config from file
|
|
||||||
filename := getArgvFilename()
|
|
||||||
if strings.Contains(filename, "docker-compose.yml") {
|
if strings.Contains(filename, "docker-compose.yml") {
|
||||||
// build etcd packets from docker-compose config
|
// build etcd packets from docker-compose config
|
||||||
dockerConfig, err := generator.ParseDockerCompose(filename)
|
dockerConfig, err := generator.ParseDockerCompose(filename)
|
||||||
@@ -74,6 +65,9 @@ func main() {
|
|||||||
etcd.RemoveDuplicatePackets(&packets)
|
etcd.RemoveDuplicatePackets(&packets)
|
||||||
for _, packet := range packets {
|
for _, packet := range packets {
|
||||||
log.Println(packet)
|
log.Println(packet)
|
||||||
// etcdManager.Put(packet.Key, packet.Value)
|
|
||||||
|
if *publish {
|
||||||
|
etcdManager.Put(packet.Key, packet.Value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user