diff --git a/agent/agent.go b/agent/agent.go index 2fb9fd7..d6d7a91 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -72,16 +72,18 @@ type Agent struct { } const ( - progFilesName = "TacticalAgent" - winExeName = "tacticalrmm.exe" - winSvcName = "tacticalrmm" - meshSvcName = "mesh agent" - etcConfig = "/etc/tacticalagent" - nixAgentDir = "/opt/tacticalagent" - nixAgentBin = nixAgentDir + "/tacticalagent" - macPlistPath = "/Library/LaunchDaemons/tacticalagent.plist" - macPlistName = "tacticalagent" - macMeshSvcDir = "/usr/local/mesh_services" + progFilesName = "TacticalAgent" + winExeName = "tacticalrmm.exe" + winSvcName = "tacticalrmm" + meshSvcName = "mesh agent" + etcConfig = "/etc/tacticalagent" + nixAgentDir = "/opt/tacticalagent" + nixMeshDir = "/opt/tacticalmesh" + nixAgentBin = nixAgentDir + "/tacticalagent" + nixMeshAgentBin = nixMeshDir + "/meshagent" + macPlistPath = "/Library/LaunchDaemons/tacticalagent.plist" + macPlistName = "tacticalagent" + defaultMacMeshSvcDir = "/usr/local/mesh_services" ) var winTempDir = filepath.Join(os.Getenv("PROGRAMDATA"), "TacticalRMM") @@ -133,12 +135,14 @@ func New(logger *logrus.Logger, version string) *Agent { } else { MeshSysExe = filepath.Join(os.Getenv("ProgramFiles"), "Mesh Agent", "MeshAgent.exe") } - case "linux": - MeshSysExe = "/opt/tacticalmesh/meshagent" case "darwin": - MeshSysExe = "/usr/local/mesh_services/meshagent/meshagent" + if trmm.FileExists(nixMeshAgentBin) { + MeshSysExe = nixMeshAgentBin + } else { + MeshSysExe = "/usr/local/mesh_services/meshagent/meshagent" + } default: - MeshSysExe = "/opt/tacticalmesh/meshagent" + MeshSysExe = nixMeshAgentBin } svcConf := &service.Config{ diff --git a/agent/install.go b/agent/install.go index 1cd45e4..16562fc 100644 --- a/agent/install.go +++ b/agent/install.go @@ -185,7 +185,7 @@ func (a *Agent) Install(i *Installer) { } } else { opts := a.NewCMDOpts() - opts.Command = fmt.Sprintf("%s -install", meshOutput) + opts.Command = fmt.Sprintf("%s -install --installPath=%s", meshOutput, nixMeshDir) out := a.CmdV2(opts) if out.Status.Exit != 0 { a.Logger.Fatalln("Error installing mesh agent:", out.Stderr) diff --git a/agent/install_unix.go b/agent/install_unix.go index 56f5f8f..1c9ba5d 100644 --- a/agent/install_unix.go +++ b/agent/install_unix.go @@ -68,7 +68,8 @@ func (a *Agent) checkExistingAndRemove(silent bool) { a.CmdV2(opts) } - os.RemoveAll(macMeshSvcDir) + os.RemoveAll(defaultMacMeshSvcDir) + os.RemoveAll(nixMeshDir) os.Remove(etcConfig) os.RemoveAll(nixAgentDir) os.Remove(macPlistPath) diff --git a/main.go b/main.go index 21fa89f..9ebf099 100644 --- a/main.go +++ b/main.go @@ -25,7 +25,7 @@ import ( ) var ( - version = "2.4.0" + version = "2.4.1-dev" log = logrus.New() logFile *os.File )