startExternalAddonProcess add parameters
authorJoey Hess <joeyh@joeyh.name>
Wed, 17 Apr 2024 17:09:10 +0000 (13:09 -0400)
committerJoey Hess <joeyh@joeyh.name>
Wed, 17 Apr 2024 17:09:10 +0000 (13:09 -0400)
Not used yet but intended to support eg running "rclone gitannex"

Annex/ExternalAddonProcess.hs
Backend/External.hs
Remote/External.hs

index 6166fab5a7a351c06d95d459229168dd593a53d7..e573d2261df6205aa487eea9a69ed813338ec441 100644 (file)
@@ -1,6 +1,6 @@
 {- External addon processes for special remotes and backends.
  -
- - Copyright 2013-2020 Joey Hess <id@joeyh.name>
+ - Copyright 2013-2024 Joey Hess <id@joeyh.name>
  -
  - Licensed under the GNU AGPL version 3 or higher.
  -}
@@ -33,16 +33,16 @@ data ExternalAddonStartError
        = ProgramNotInstalled String
        | ProgramFailure String
 
-startExternalAddonProcess :: String -> ExternalAddonPID -> Annex (Either ExternalAddonStartError ExternalAddonProcess)
-startExternalAddonProcess basecmd pid = do
+startExternalAddonProcess :: String -> [CommandParam] -> ExternalAddonPID -> Annex (Either ExternalAddonStartError ExternalAddonProcess)
+startExternalAddonProcess basecmd ps pid = do
        errrelayer <- mkStderrRelayer
        g <- Annex.gitRepo
        cmdpath <- liftIO $ searchPath basecmd
        liftIO $ start errrelayer g cmdpath
   where
        start errrelayer g cmdpath = do
-               (cmd, ps) <- maybe (pure (basecmd, [])) findShellCommand cmdpath
-               let basep = (proc cmd (toCommand ps))
+               (cmd, cmdps) <- maybe (pure (basecmd, [])) findShellCommand cmdpath
+               let basep = (proc cmd (toCommand (cmdps ++ ps)))
                        { std_in = CreatePipe
                        , std_out = CreatePipe
                        , std_err = CreatePipe
index b95cff5e3b574bfe2d2235387c9ad7d5248b803e..53416c7e4bce36a6304630ebdd18a120eec3e9d7 100644 (file)
@@ -215,7 +215,7 @@ poolVar = unsafePerformIO $ newMVar M.empty
 -- using it.
 newExternalState :: ExternalBackendName -> HasExt -> ExternalAddonPID -> Annex ExternalState
 newExternalState ebname hasext pid = do
-       st <- startExternalAddonProcess basecmd pid
+       st <- startExternalAddonProcess basecmd [] pid
        st' <- case st of
                Left (ProgramNotInstalled msg) -> warnonce msg >> return st
                Left (ProgramFailure msg) -> warnonce msg >> return st
index 99b49d03567eeaa8db7c36f6e3cb423782e71b6b..179043c3bcdbf22ef8e07c2c3eb0b75a174ebba1 100644 (file)
@@ -658,7 +658,7 @@ startExternal' external = do
                n <- succ <$> readTVar (externalLastPid external)
                writeTVar (externalLastPid external) n
                return n
-       AddonProcess.startExternalAddonProcess basecmd pid >>= \case
+       AddonProcess.startExternalAddonProcess basecmd [] pid >>= \case
                Left (AddonProcess.ProgramFailure err) -> do
                        unusable err
                Left (AddonProcess.ProgramNotInstalled err) ->