I need to use config in my go code and I want to load config path from command-line. I try:
if len(os.Args) > 1 {
configpath := os.Args[1]
fmt.Println("1") // For debug
} else {
configpath := "/etc/buildozer/config"
fmt.Println("2")
}
Then I use config:
configuration := config.ConfigParser(configpath)
When I launch my go file with parameter (or without) I receive similar error
# command-line-arguments
src/2rl/buildozer/buildozer.go:21: undefined: configpath
How should I correctly use os.Args?
Define configPath
outside the scope of your if
.
configPath := ""
if len(os.Args) > 1 {
configpath = os.Args[1]
fmt.Println("1") // For debug
} else {
configpath = "/etc/buildozer/config"
fmt.Println("2")
}
Note the 'configPath =
' (instead of :=
) inside the if
.
That way configPath
is defined before and is still visible after the if
.
See more at "Declarations and scope" / "Variable declarations".