54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package env
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
const (
|
|
// Default paths for when environment variables are not set
|
|
DefaultSteamCMDPath = "c:\\steamcmd\\steamcmd.exe"
|
|
DefaultNSSMPath = ".\\nssm.exe"
|
|
)
|
|
|
|
// GetSteamCMDPath returns the SteamCMD executable path from environment variable or default
|
|
func GetSteamCMDPath() string {
|
|
if path := os.Getenv("STEAMCMD_PATH"); path != "" {
|
|
return path
|
|
}
|
|
return DefaultSteamCMDPath
|
|
}
|
|
|
|
// GetSteamCMDDirPath returns the directory containing SteamCMD executable
|
|
func GetSteamCMDDirPath() string {
|
|
steamCMDPath := GetSteamCMDPath()
|
|
return filepath.Dir(steamCMDPath)
|
|
}
|
|
|
|
// GetNSSMPath returns the NSSM executable path from environment variable or default
|
|
func GetNSSMPath() string {
|
|
if path := os.Getenv("NSSM_PATH"); path != "" {
|
|
return path
|
|
}
|
|
return DefaultNSSMPath
|
|
}
|
|
|
|
// ValidatePaths checks if the configured paths exist (optional validation)
|
|
func ValidatePaths() map[string]error {
|
|
errors := make(map[string]error)
|
|
|
|
// Check SteamCMD path
|
|
steamCMDPath := GetSteamCMDPath()
|
|
if _, err := os.Stat(steamCMDPath); os.IsNotExist(err) {
|
|
errors["STEAMCMD_PATH"] = err
|
|
}
|
|
|
|
// Check NSSM path
|
|
nssmPath := GetNSSMPath()
|
|
if _, err := os.Stat(nssmPath); os.IsNotExist(err) {
|
|
errors["NSSM_PATH"] = err
|
|
}
|
|
|
|
return errors
|
|
}
|