So many people get all wrapped up up using 3rd party packages for everything from processing command line flags to Fourier transforms. While I know absolutely nothing about Fourier transforms and quite a lot about processing the CLI I’m not about to import packages that I do not trust and understand.
I read this article on working directories. At first I thought it was a reasonable idea. Then the author linked to a package osext. And I about fell out of my chair. I posted a response to the article which has not been moderated yet but it went something like:
os.Args already provides the fullpath of the executable. It even works with
go run. However, locating artifacts and config files it idoimatic beyond golang. look in /etc, $HOME, cwd, exec and CLI. Using the path to the executable is not idiomatic especially for webservers as in the given example.