mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
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
This commit is contained in:
parent
ceb21bd653
commit
fd10aa902d
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user