avoiding depending on latest version of process except on Windows
This commit is contained in:
parent
e05acd20a5
commit
76c63a4a66
2 changed files with 13 additions and 2 deletions
|
@ -5,6 +5,8 @@
|
|||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
||||
{-# LANGUAGE CPP #-}
|
||||
|
||||
module Annex.Multicast where
|
||||
|
||||
import Config.Files
|
||||
|
@ -14,6 +16,9 @@ import Utility.PartialPrelude
|
|||
import System.Process
|
||||
import System.IO
|
||||
import GHC.IO.Handle.FD
|
||||
#if ! MIN_VERSION_process(1,4,2)
|
||||
import System.Posix.IO (handleToFd)
|
||||
#endif
|
||||
|
||||
multicastReceiveEnv :: String
|
||||
multicastReceiveEnv = "GIT_ANNEX_MULTICAST_RECEIVE"
|
||||
|
@ -21,8 +26,14 @@ multicastReceiveEnv = "GIT_ANNEX_MULTICAST_RECEIVE"
|
|||
multicastCallbackEnv :: IO (FilePath, [(String, String)], Handle)
|
||||
multicastCallbackEnv = do
|
||||
gitannex <- readProgramFile
|
||||
#if MIN_VERSION_process(1,4,2)
|
||||
-- This will even work on Windows
|
||||
(rfd, wfd) <- createPipeFd
|
||||
rh <- fdToHandle rfd
|
||||
#else
|
||||
(rh, wh) <- createPipe
|
||||
wfd <- handleToFd wh
|
||||
#endif
|
||||
environ <- addEntry multicastReceiveEnv (show wfd) <$> getEnvironment
|
||||
return (gitannex, environ, rh)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue