Improve parameter handling
This commit is contained in:
@@ -18,29 +18,39 @@ func invalidHandler(httpW http.ResponseWriter, httpR *http.Request) {
|
||||
httpW.Write([]byte("Invalid Request\n"))
|
||||
}
|
||||
|
||||
type settingType struct {
|
||||
birdSocket string
|
||||
bird6Socket string
|
||||
listen string
|
||||
}
|
||||
|
||||
var setting settingType
|
||||
|
||||
// Wrapper of tracer
|
||||
func main() {
|
||||
var err error
|
||||
|
||||
// Prepare default socket paths, use environment variable if possible
|
||||
birdSocketDefault := "/var/run/bird/bird.ctl"
|
||||
bird6SocketDefault := "/var/run/bird/bird6.ctl"
|
||||
listenDefault := ":8000"
|
||||
var settingDefault = settingType{
|
||||
"/var/run/bird/bird.ctl",
|
||||
"/var/run/bird/bird6.ctl",
|
||||
":8000",
|
||||
}
|
||||
|
||||
if birdSocketEnv := os.Getenv("BIRD_SOCKET"); birdSocketEnv != "" {
|
||||
birdSocketDefault = birdSocketEnv
|
||||
settingDefault.birdSocket = birdSocketEnv
|
||||
}
|
||||
if bird6SocketEnv := os.Getenv("BIRD6_SOCKET"); bird6SocketEnv != "" {
|
||||
bird6SocketDefault = bird6SocketEnv
|
||||
settingDefault.bird6Socket = bird6SocketEnv
|
||||
}
|
||||
if listenEnv := os.Getenv("BIRDLG_LISTEN"); listenEnv != "" {
|
||||
listenDefault = listenEnv
|
||||
settingDefault.listen = listenEnv
|
||||
}
|
||||
|
||||
// Allow parameters to override environment variables
|
||||
birdParam := flag.String("bird", birdSocketDefault, "socket file for bird, set either in parameter or environment variable BIRD_SOCKET")
|
||||
bird6Param := flag.String("bird6", bird6SocketDefault, "socket file for bird6, set either in parameter or environment variable BIRD6_SOCKET")
|
||||
listenParam := flag.String("listen", listenDefault, "listen address, set either in parameter or environment variable BIRDLG_LISTEN")
|
||||
birdParam := flag.String("bird", settingDefault.birdSocket, "socket file for bird, set either in parameter or environment variable BIRD_SOCKET")
|
||||
bird6Param := flag.String("bird6", settingDefault.bird6Socket, "socket file for bird6, set either in parameter or environment variable BIRD6_SOCKET")
|
||||
listenParam := flag.String("listen", settingDefault.listen, "listen address, set either in parameter or environment variable BIRDLG_LISTEN")
|
||||
flag.Parse()
|
||||
|
||||
// Initialize BIRDv4 socket
|
||||
|
||||
Reference in New Issue
Block a user