From 895173460ad8e975c68279038afdf2d581c6377f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 31 Jan 2026 16:12:14 +0100 Subject: [PATCH] chore/manage: fix bug where nixpkgs store path is "" --- nix/packages/by-name/manage/src/Main.hs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/nix/packages/by-name/manage/src/Main.hs b/nix/packages/by-name/manage/src/Main.hs index dc112e47..52e2b7b5 100755 --- a/nix/packages/by-name/manage/src/Main.hs +++ b/nix/packages/by-name/manage/src/Main.hs @@ -23,14 +23,14 @@ main = do ) -> manageArgs `showHelpOr` do nixpkgs <- readNixpkgsPath - void $ readProcessFriendly "nixos-rebuild" (action : nixosRebuildArgs nixpkgs host <> extraArgs) + exitWith =<< transparentProcess "nixos-rebuild" (action : nixosRebuildArgs nixpkgs host <> extraArgs) ( "install" : host : (partitionArgs -> (manageArgs, extraArgs)) ) -> manageArgs `showHelpOr` do nixpkgs <- readNixpkgsPath - void $ readProcessFriendly "nixos-install" (nixosInstallArgs nixpkgs host <> extraArgs) + exitWith =<< transparentProcess "nixos-install" (nixosInstallArgs nixpkgs host <> extraArgs) _ -> putStr help >> exitFailure @@ -79,8 +79,10 @@ quote x = "\"" <> x <> "\"" blueForeground :: String -> String blueForeground x = "\ESC[34m" <> x <> "\ESC[0m" -readProcessFriendly :: String -> [String] -> IO String -readProcessFriendly cmdName args = do +-- | +-- Run with a shared std{in,out,err} +transparentProcess :: String -> [String] -> IO ExitCode +transparentProcess cmdName args = do hPutStrLn stderr $ "Executing: " <> (quote . blueForeground) (showCommandForUser cmdName args) (_, _, _, pid) <- createProcess @@ -89,8 +91,13 @@ readProcessFriendly cmdName args = do , std_out = UseHandle stdout , std_err = UseHandle stderr } - _ <- waitForProcess pid - pure "" + waitForProcess pid + +readProcessFriendly :: String -> [String] -> String -> IO String +readProcessFriendly cmdName args inp = do + hPutStrLn stderr + $ "Executing: " <> (quote . blueForeground) (showCommandForUser cmdName args) + readProcess cmdName args inp readNixpkgsPath :: IO StorePath readNixpkgsPath = @@ -100,5 +107,6 @@ readNixpkgsPath = , "-E" , "let sources = import ./npins; in sources.nixpkgs.outPath" ] + "" where clean = filter (\c -> c /= '\n' && c /= '"')