37 lines
471 B
Go
37 lines
471 B
Go
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
|
|
}
|
|
|
|
|