summaryrefslogtreecommitdiffstats
path: root/utils/config.go
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2018-05-29 13:21:42 -0700
committerGitHub <noreply@github.com>2018-05-29 13:21:42 -0700
commit2f6039f23f75ef0d63f980c8354d3d638071f230 (patch)
treee258e996c7fff2e269ddd65cb8c76539482bca04 /utils/config.go
parentd3cf110620033f8831a55a3fd911d7864b6aab4a (diff)
downloadchat-2f6039f23f75ef0d63f980c8354d3d638071f230.tar.gz
chat-2f6039f23f75ef0d63f980c8354d3d638071f230.tar.bz2
chat-2f6039f23f75ef0d63f980c8354d3d638071f230.zip
Revert "MM-6839: search relative to executable (#8853)" (#8876)
This reverts commit d3cf110620033f8831a55a3fd911d7864b6aab4a.
Diffstat (limited to 'utils/config.go')
-rw-r--r--utils/config.go100
1 files changed, 21 insertions, 79 deletions
diff --git a/utils/config.go b/utils/config.go
index da1918490..00fd2642a 100644
--- a/utils/config.go
+++ b/utils/config.go
@@ -32,94 +32,36 @@ const (
LOG_FILENAME = "mattermost.log"
)
-var (
- commonBaseSearchPaths = []string{
- ".",
- "..",
- "../..",
- "../../..",
- }
-)
-
-func FindPath(path string, baseSearchPaths []string, filter func(os.FileInfo) bool) string {
- if filepath.IsAbs(path) {
- if _, err := os.Stat(path); err == nil {
- return path
- }
-
- return ""
- }
-
- searchPaths := []string{}
- for _, baseSearchPath := range baseSearchPaths {
- searchPaths = append(searchPaths, baseSearchPath)
- }
-
- // Additionally attempt to search relative to the location of the running binary.
- var binaryDir string
- if exe, err := os.Executable(); err == nil {
- if exe, err = filepath.EvalSymlinks(exe); err == nil {
- if exe, err = filepath.Abs(exe); err == nil {
- binaryDir = filepath.Dir(exe)
- }
- }
- }
- if binaryDir != "" {
- for _, baseSearchPath := range baseSearchPaths {
- searchPaths = append(
- searchPaths,
- filepath.Join(binaryDir, baseSearchPath),
- )
- }
- }
-
- for _, parent := range searchPaths {
- found, err := filepath.Abs(filepath.Join(parent, path))
- if err != nil {
- continue
- } else if fileInfo, err := os.Stat(found); err == nil {
- if filter != nil && filter(fileInfo) {
- return found
- } else {
- return found
- }
- }
- }
-
- return ""
-}
-
// FindConfigFile attempts to find an existing configuration file. fileName can be an absolute or
// relative path or name such as "/opt/mattermost/config.json" or simply "config.json". An empty
// string is returned if no configuration is found.
func FindConfigFile(fileName string) (path string) {
- found := FindFile(filepath.Join("config", fileName))
- if found == "" {
- found = FindPath(fileName, []string{"."}, nil)
+ if filepath.IsAbs(fileName) {
+ if _, err := os.Stat(fileName); err == nil {
+ return fileName
+ }
+ } else {
+ for _, dir := range []string{"./config", "../config", "../../config", "../../../config", "."} {
+ path, _ := filepath.Abs(filepath.Join(dir, fileName))
+ if _, err := os.Stat(path); err == nil {
+ return path
+ }
+ }
}
-
- return found
-}
-
-// FindFile looks for the given file in nearby ancestors relative to the current working
-// directory as well as the directory of the executable.
-func FindFile(path string) string {
- return FindPath(path, commonBaseSearchPaths, func(fileInfo os.FileInfo) bool {
- return !fileInfo.IsDir()
- })
+ return ""
}
-// FindDir looks for the given directory in nearby ancestors relative to the current working
-// directory as well as the directory of the executable, falling back to `./` if not found.
+// FindDir looks for the given directory in nearby ancestors, falling back to `./` if not found.
func FindDir(dir string) (string, bool) {
- found := FindPath(dir, commonBaseSearchPaths, func(fileInfo os.FileInfo) bool {
- return fileInfo.IsDir()
- })
- if found == "" {
- return "./", false
+ for _, parent := range []string{".", "..", "../..", "../../.."} {
+ foundDir, err := filepath.Abs(filepath.Join(parent, dir))
+ if err != nil {
+ continue
+ } else if _, err := os.Stat(foundDir); err == nil {
+ return foundDir, true
+ }
}
-
- return found, true
+ return "./", false
}
func MloggerConfigFromLoggerConfig(s *model.LogSettings) *mlog.LoggerConfiguration {