Implement config paths helpers
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
// Directory for config files
|
||||
var Directory string
|
||||
|
||||
func directory() string {
|
||||
if Directory != "" {
|
||||
return Directory
|
||||
}
|
||||
|
||||
usr, err := user.Current()
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("get current user")
|
||||
}
|
||||
|
||||
Directory = filepath.Join(usr.HomeDir, ".out-of-tree")
|
||||
|
||||
return Directory
|
||||
}
|
||||
|
||||
// Dir that exist relative to config directory
|
||||
func Dir(s ...string) (dir string) {
|
||||
dir = filepath.Join(append([]string{directory()}, s...)...)
|
||||
err := os.MkdirAll(dir, os.ModePerm)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("mkdir")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// File in existing dir relative to config directory
|
||||
func File(s ...string) (file string) {
|
||||
file = filepath.Join(append([]string{directory()}, s...)...)
|
||||
err := os.MkdirAll(filepath.Dir(file), os.ModePerm)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("mkdir")
|
||||
}
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user