From a94ff15c5993ceaee3d28a8d2c117d53ada0a299 Mon Sep 17 00:00:00 2001 From: Chris Done Date: Tue, 13 Jan 2015 19:26:34 +0100 Subject: [PATCH] Only unpack when necessary --- Stackage/ShakeBuild.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Stackage/ShakeBuild.hs b/Stackage/ShakeBuild.hs index d821b08f..e4f4aaf1 100644 --- a/Stackage/ShakeBuild.hs +++ b/Stackage/ShakeBuild.hs @@ -88,7 +88,9 @@ packageTarget pb shakeDir name plan = do (M.keys (sdPackages (ppDesc plan)))) pwd <- liftIO getCurrentDirectory env <- liftIO (fmap (Env . (++ defaultEnv pwd)) getEnvironment) - () <- cmd (Cwd shakeDir) "cabal" "unpack" nameVer + unpacked <- liftIO (doesDirectoryExist (shakeDir nameVer)) + unless unpacked + (cmd (Cwd shakeDir) "cabal" "unpack" nameVer) () <- cmd cwd env "cabal" "configure" (opts pwd) () <- cmd cwd env "cabal" "build" () <- cmd cwd env "cabal" "copy"