on master help sign in
Delete libraries when unregistering

Pinging @manny-fp

commiteef9c14d248d2e3ad696078e8843894dbf8a4b7c authorMichael Snoyman <michael@snoyman.com> dateSun 15 Mar 2015, 15:29 (12 years ago) parent8f74bbe
1 file changed+11
Stackage/GhcPkg.hs+11
Stackage/GhcPkg.hs+11
@@ -85,9 +85,20 @@ unregisterPackage :: (ByteString -> IO ()) -- ^ log func
8585unregisterPackage log' onUnregister docDir flags ident@(PackageIdentifier name _) = do
8686 log' $ "Unregistering " ++ encodeUtf8 (display ident) ++ "\n"
8787 onUnregister ident
88+
89+ -- Delete libraries
90+ sourceProcessWithConsumer
91+ (proc "ghc-pkg" ("describe" : flags ++ [unpack $ display ident]))
92+ (CT.decodeUtf8
93+ $= CT.lines
94+ $= CL.mapMaybe parseLibraryDir
95+ $= CL.mapM_ (void . tryIO . removeTree))
96+
8897 void (readProcessWithExitCode
8998 "ghc-pkg"
9099 ("unregister": flags ++ ["--force", unpack $ display name])
91100 "")
92101
93102 void $ tryIO $ removeTree $ docDir </> fpFromText (display ident)
103+ where
104+ parseLibraryDir = fmap fpFromText . stripPrefix "library-dirs: "