github.com/observiq/carbon@v0.9.11-0.20200820160507-1b872e368a5e/commands/default_paths.go (about) 1 package commands 2 3 import ( 4 "fmt" 5 "os" 6 "path/filepath" 7 "runtime" 8 "strings" 9 ) 10 11 var agentName = "carbon" 12 13 func defaultPluginDir() string { 14 if stat, err := os.Stat("./plugins"); err == nil { 15 if stat.IsDir() { 16 return "./plugins" 17 } 18 } 19 20 return filepath.Join(agentHome(), "plugins") 21 } 22 23 func defaultConfig() string { 24 if _, err := os.Stat("./config.yaml"); err == nil { 25 return "./config.yaml" 26 } 27 28 return filepath.Join(agentHome(), "config.yaml") 29 } 30 31 func agentHome() string { 32 if home := os.Getenv(strings.ToUpper(agentName) + "_HOME"); home != "" { 33 return home 34 } 35 36 switch runtime.GOOS { 37 case "windows": 38 return filepath.Join(`C:\`, agentName) 39 case "darwin": 40 home, _ := os.UserHomeDir() 41 return filepath.Join(home, agentName) 42 case "linux": 43 return filepath.Join("/opt", agentName) 44 default: 45 panic(fmt.Sprintf("Unsupported GOOS %s", runtime.GOOS)) 46 } 47 }