@@ -26,7 +26,7 @@ import System.FilePath
26import System.IO.Temp
26import System.IO.Temp
27import System.Posix (FileStatus, UserID, deviceID, fileID, fileMode, fileOwner, getFileStatus, getRealUserID)
27import System.Posix (FileStatus, UserID, deviceID, fileID, fileMode, fileOwner, getFileStatus, getRealUserID)
28import System.Posix.Files
28import System.Posix.Files
29−import System.Process (CreateProcess, cwd, proc, waitForProcess)
29+import System.Process (CreateProcess, cwd, proc, waitForProcess, delegate_ctlc)
31import GitHub.Data.GitData (Branch)
31import GitHub.Data.GitData (Branch)
32import GitHub.Data.Name (Name)
32import GitHub.Data.Name (Name)
@@ -204,7 +204,7 @@ inImpureProjectShell shellName command = withProjectRoot "." $ \root ->
205projectShell :: MonadObelisk m => FilePath -> Bool -> String -> String -> m ()
205projectShell :: MonadObelisk m => FilePath -> Bool -> String -> String -> m ()
206projectShell root isPure shellName command = do
206projectShell root isPure shellName command = do
207− (_, _, _, ph) <- createProcess_ "runNixShellAttr" $ setCwd (Just root) $ proc "nix-shell" $
207+ (_, _, _, ph) <- createProcess_ "runNixShellAttr" $ setCtlc $ setCwd (Just root) $ proc "nix-shell" $
208 [ "--pure" | isPure ] <>
208 [ "--pure" | isPure ] <>
210 , "shells." <> shellName
210 , "shells." <> shellName
@@ -212,5 +212,8 @@ projectShell root isPure shellName command = do
213 void $ liftIO $ waitForProcess ph
213 void $ liftIO $ waitForProcess ph
215+setCtlc :: CreateProcess -> CreateProcess
216+setCtlc cfg = cfg { delegate_ctlc = True }
215setCwd :: Maybe FilePath -> CreateProcess -> CreateProcess
218setCwd :: Maybe FilePath -> CreateProcess -> CreateProcess
216setCwd fp cfg = cfg { cwd = fp }
219setCwd fp cfg = cfg { cwd = fp }