mirror of
				https://github.com/KevinMidboe/traefik-etcd-advertiser.git
				synced 2025-10-29 18:00:19 +00:00 
			
		
		
		
	add -version flag & update help text
This commit is contained in:
		| @@ -6,29 +6,53 @@ import ( | |||||||
| 	"os" | 	"os" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| var ( | var filename string | ||||||
| 	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") | 	flag.StringVar(&filename, "filename", "", "path of config") | ||||||
| 	publish := flag.Bool("publish", false, "publish etcd messages") | 	publish := flag.Bool("publish", false, "publish etcd messages") | ||||||
|  | 	versionFlag := flag.Bool("version", false, "print version information") | ||||||
|  |  | ||||||
| 	flag.Parse() | 	flag.Parse() | ||||||
|  |  | ||||||
| 	args := os.Args[1:] | 	args := os.Args[1:] | ||||||
|  | 	if *versionFlag { | ||||||
|  | 		printVersion(version) | ||||||
|  | 		os.Exit(0) | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	if len(args) == 0 { | 	if len(args) == 0 { | ||||||
| 		// no command, exit with code 2 (invalid usage) | 		// 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) | 		os.Exit(2) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if len(filename) < 1 { | 	if len(filename) < 1 { | ||||||
| 		fmt.Fprintf(os.Stderr, "Filename required. Usage:\n") | 		fmt.Fprintf(os.Stderr, "Filename required. Usage:\n") | ||||||
|  |  | ||||||
| 		flag.PrintDefaults() | 		helpMessage() | ||||||
| 		os.Exit(2) | 		os.Exit(2) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								main.go
									
									
									
									
									
								
							| @@ -10,20 +10,16 @@ import ( | |||||||
| 	"github.com/kevinmidboe/traefik-etcd-advertiser/generator" | 	"github.com/kevinmidboe/traefik-etcd-advertiser/generator" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | var Version = "v0.1-dev" | ||||||
|  |  | ||||||
| func main() { | func main() { | ||||||
|  | 	filename, publish := config.ParseCli(Version) | ||||||
|  |  | ||||||
| 	_, 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 |  | ||||||
| 	etcdManager, err := etcd.NewClient() |  | ||||||
| 	if err != nil { |  | ||||||
| 		panic(err) |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	var packets []etcd.EtcdPacket | 	var packets []etcd.EtcdPacket | ||||||
|  |  | ||||||
| 	if strings.Contains(filename, "docker-compose.yml") { | 	if strings.Contains(filename, "docker-compose.yml") { | ||||||
| @@ -58,6 +54,12 @@ func main() { | |||||||
| 		log.Println(packet) | 		log.Println(packet) | ||||||
|  |  | ||||||
| 		if *publish { | 		if *publish { | ||||||
|  | 			// setup etcd client | ||||||
|  | 			etcdManager, err := etcd.NewClient() | ||||||
|  | 			if err != nil { | ||||||
|  | 				panic(err) | ||||||
|  | 			} | ||||||
|  |  | ||||||
| 			etcdManager.Put(packet.Key, packet.Value) | 			etcdManager.Put(packet.Key, packet.Value) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user