@@ -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: "