sharded-gotify/test/filepath.go

30 lines
547 B
Go

package test
import (
"os"
"path"
"path/filepath"
"runtime"
)
// GetProjectDir returns the correct absolute path of this project
func GetProjectDir() string {
_, f, _, _ := runtime.Caller(0)
projectDir, _ := filepath.Abs(path.Join(filepath.Dir(f), "../"))
return projectDir
}
// WithWd executes a function with the specified working directory
func WithWd(chDir string, f func(origWd string)) {
wd, err := os.Getwd()
if err != nil {
panic(err)
}
if err := os.Chdir(chDir); err != nil {
panic(err)
}
defer os.Chdir(wd)
f(wd)
}