Commit fd10aa90 by Andrej Ocenas Committed by GitHub

Chore: Use executable dir instead of pwd in CLI for isDev check (#16974)

* Use executable dir for the dev check

* Handle executable in bin and platform dirs

* Remove commented code

* Rename variable
parent ceb21bd6
...@@ -2,36 +2,41 @@ package utils ...@@ -2,36 +2,41 @@ package utils
import ( import (
"os" "os"
"path"
"path/filepath"
"github.com/grafana/grafana/pkg/cmd/grafana-cli/logger" "github.com/grafana/grafana/pkg/cmd/grafana-cli/logger"
) )
func GetGrafanaPluginDir(currentOS string) string { func GetGrafanaPluginDir(currentOS string) string {
//currentOS := runtime.GOOS if isDevEnvironment() {
if currentOS == "windows" {
return returnOsDefault(currentOS)
}
pwd, err := os.Getwd()
if err != nil {
logger.Error("Could not get current path. using default")
return returnOsDefault(currentOS)
}
if isDevenvironment(pwd) {
return "../data/plugins" return "../data/plugins"
} }
return returnOsDefault(currentOS) return returnOsDefault(currentOS)
} }
func isDevenvironment(pwd string) bool { func isDevEnvironment() bool {
// if ../conf/defaults.ini exists, grafana is not installed as package // if ../conf/defaults.ini exists, grafana is not installed as package
// that its in development environment. // that its in development environment.
_, err := os.Stat("../conf/defaults.ini") ex, err := os.Executable()
return err == nil if err != nil {
logger.Error("Could not get executable path. Assuming non dev environment.")
return false
}
exPath := filepath.Dir(ex)
_, last := path.Split(exPath)
if last == "bin" {
// In dev env the executable for current platform is created in 'bin/' dir
defaultsPath := filepath.Join(exPath, "../conf/defaults.ini")
_, err = os.Stat(defaultsPath)
return err == nil
} else {
// But at the same time there are per platform directories that contain the binaries and can also be used.
defaultsPath := filepath.Join(exPath, "../../conf/defaults.ini")
_, err = os.Stat(defaultsPath)
return err == nil
}
} }
func returnOsDefault(currentOs string) string { func returnOsDefault(currentOs string) string {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment