mirror of
https://github.com/slackhq/nebula.git
synced 2026-05-16 04:47:38 +02:00
30 lines
774 B
Go
30 lines
774 B
Go
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)
|
|
}
|