| 1234567891011121314151617181920212223242526272829 |
- package config
- import (
- "fmt"
- "os"
- "path/filepath"
- )
- // DefaultPath returns a path to a config file alongside the running executable, preferring config.yaml over config.yml.
- // If neither file exists an error is returned that names both paths checked.
- func DefaultPath() (string, error) {
- ex, err := os.Executable()
- if err != nil {
- return "", err
- }
- return defaultPathInDir(filepath.Dir(ex))
- }
- func defaultPathInDir(dir string) (string, error) {
- yamlPath := filepath.Join(dir, "config.yaml")
- if _, err := os.Stat(yamlPath); err == nil {
- return yamlPath, nil
- }
- ymlPath := filepath.Join(dir, "config.yml")
- if _, err := os.Stat(ymlPath); err == nil {
- return ymlPath, nil
- }
- return "", fmt.Errorf("no default config found at %s or %s", yamlPath, ymlPath)
- }
|