Golang Current File Path
I recently needed to get the current file absolute path from a go file. You first need to get the runtime package which is a part of Go
import "runtime"
Next you can use the Caller
method and capture the filename. We need to
give this function a 1
to tell it to skip up a caller. You can read more
about the function here
_, filename, _, ok := runtime.Caller(1)
The filename will be the path up to the current directory of the file that
calls this function. The ok
is to check if the function call was able to
find the information requested.
So in practice if you wanted to get a config file up a directory and in a config directory you could do the following
filepath := path.Join(path.Dir(filename), "../config/settings.toml")