package sys import ( "log" "os" "path/filepath" ) func Rootify(path string) string { root, err := GetProjectRoot() if err != nil { log.Fatal(err) } return filepath.Join(root, path) } func GetProjectRoot(dir... bool) (string, error) { exeDir, err := os.Executable() if err != nil { return "", err } for i, d := range dir { exeDir = filepath.Dir(exeDir) // up to 3 if i > 3 { break } } return exeDir, nil }