When re-execing git-annex, use current program location, rather than ~/.config/git-annex/program, when possible.

Most of the time, there will be no discreprancy between programPath and
readProgramFile.

But, the programFile might have been written by an old version of git-annex
that is still installed, while a newer one is currently running. In this
case, we want to run the same one that's currently running.

This is especially important for things like the GIT_SSH=git-annex used for
ssh connection caching.

The only code that still uses readProgramFile directly is the upgrade code,
which needs to know where the standalone git-annex was installed, in order to
upgrade it.
This commit is contained in:
Joey Hess 2015-02-28 17:23:13 -04:00
parent b9275b65f9
commit 450ee53ab6
14 changed files with 28 additions and 25 deletions

View file

@ -9,7 +9,7 @@ module Assistant.Threads.RemoteControl where
import Assistant.Common
import RemoteDaemon.Types
import Config.Files
import Annex.Path
import Utility.Batch
import Utility.SimpleProtocol
import Assistant.Alert
@ -28,7 +28,7 @@ import qualified Data.Set as S
remoteControlThread :: NamedThread
remoteControlThread = namedThread "RemoteControl" $ do
program <- liftIO readProgramFile
program <- liftIO programPath
(cmd, params) <- liftIO $ toBatchCommand
(program, [Param "remotedaemon"])
let p = proc cmd (toCommand params)