package config import ( "flag" ) // declareFlags registers flags for the structure Options. func declareFlags(o *Config) { flag.StringVar(&o.Bind, "bind", ":8081", "Bind port/socket") flag.StringVar(&o.WifiInterface, "wifi-interface", "wlan0", "WiFi interface name") flag.BoolVar(&o.UseARPDiscovery, "use-arp-discovery", true, "Use ARP table for device discovery instead of DHCP leases") flag.StringVar(&o.DHCPLeasesPath, "dhcp-leases-path", "/var/lib/dhcp/dhcpd.leases", "Path to DHCP leases file") flag.StringVar(&o.ARPTablePath, "arp-table-path", "/proc/net/arp", "Path to ARP table file") } // parseCLI parse the flags and treats extra args as configuration filename. func parseCLI(o *Config) error { flag.Parse() for _, conf := range flag.Args() { err := parseFile(o, conf) if err != nil { return err } } return nil }