Files
sys/fs.go
2026-04-13 11:49:32 -04:00

42 lines
811 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() string {
// _, b, _, _ := runtime.Caller(0)
// // b is the absolute path to this specific .go file
// // 1st Dir() gets the folder containing the file
// // 2nd Dir() gets the parent of that folder
// return filepath.Dir(filepath.Dir(b))
// }
func GetProjectRoot() (string, error) {
exePath, err := os.Executable()
if err != nil {
return "", err
}
exeDir := filepath.Dir(exePath)
// // adjust depending on your structure
// // e.g. binary is in /project/bin/app → go up one level
// root := filepath.Dir(exeDir)
return exeDir, nil
}