Yes, typically in the Go code I have seen, **all** flag parsing is set up in the `init()` function so that the very first thing `main()` does is call `flag.Parse()`.  Also, in typical scenarios, all `flag` declarations are restricted to the `main` package and settings are passed into other packages on an as-needed basis.  (That's just an aside... I'm not saying you are doing anything wrong... just stating generalities here.)  :-)