MM-6839: search relative to executable (#8853)
* MM-6839: searching for paths relative to executable In addition to searching relative to the current working directory, also search relative to the location of the binary. This helps locate config and i18n files when invoking an absolute path to the mattermost binary. * MM-6839: find mattermost/ binary using utils.FindFile
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
4f5fdb6f89
Коммит
d3cf110620
@@ -6,19 +6,10 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func findMattermostBinary() string {
|
||||
for _, file := range []string{"./mattermost", "../mattermost", "./bin/mattermost"} {
|
||||
path, _ := filepath.Abs(file)
|
||||
if stat, err := os.Stat(path); err == nil && !stat.IsDir() {
|
||||
return path
|
||||
}
|
||||
}
|
||||
return "./mattermost"
|
||||
}
|
||||
"github.com/mattermost/mattermost-server/utils"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Print angry message to use mattermost command directly
|
||||
@@ -33,7 +24,14 @@ The platform binary will be removed in a future version.
|
||||
args := os.Args
|
||||
args[0] = "mattermost"
|
||||
args = append(args, "--platform")
|
||||
if err := syscall.Exec(findMattermostBinary(), args, nil); err != nil {
|
||||
|
||||
realMattermost := utils.FindFile("mattermost")
|
||||
if realMattermost == "" {
|
||||
// This will still fail, of course.
|
||||
realMattermost = "./mattermost"
|
||||
}
|
||||
|
||||
if err := syscall.Exec(utils.FindFile("mattermost"), args, nil); err != nil {
|
||||
fmt.Println("Could not start Mattermost, use the mattermost command directly.")
|
||||
}
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user