summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-04-27 09:31:24 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-04-27 09:34:07 +0200
commit09fbd3b2cb359afcf0bfe5652f98be09b4835546 (patch)
tree41d9a9afb5531cc4dac07f6e1247338ac81b452a
parent55c3c2bd6cf3964458d017ad8ea058d1743577ca (diff)
Preserve environment for spawn processesHEADmaster
-rw-r--r--src/Process.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Process.hs b/src/Process.hs
index 92bbab1..290aedf 100644
--- a/src/Process.hs
+++ b/src/Process.hs
@@ -23,6 +23,7 @@ import qualified Data.Text as T
import qualified Data.Text.IO as T
import System.Directory
+import System.Environment
import System.Exit
import System.FilePath
import System.IO
@@ -104,10 +105,11 @@ spawnOn target pname killWith cmd = do
let netns = either getNetns getNetns target
let prefix = T.unpack $ "ip netns exec \"" <> textNetnsName netns <> "\" "
+ currentEnv <- liftIO $ getEnvironment
(Just hin, Just hout, Just herr, handle) <- liftIO $ createProcess (shell $ prefix ++ cmd')
{ std_in = CreatePipe, std_out = CreatePipe, std_err = CreatePipe
, cwd = Just (either netDir nodeDir target)
- , env = Just [ ( "EREBOS_DIR", "." ) ]
+ , env = Just $ ( "EREBOS_DIR", "." ) : currentEnv
}
pout <- liftIO $ newTVarIO []