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  }