packages feed

cabal-uninstall 0.1.5 → 0.1.6

raw patch · 2 files changed

+14/−7 lines, 2 files

Files

cabal-uninstall.cabal view
@@ -1,12 +1,12 @@ name:                     cabal-uninstall-version:                  0.1.5+version:                  0.1.6 cabal-version:            >= 1.6 stability:                alpha description:              Very simple script to delete a cabal package. synopsis:                 Uninstall cabal packages license:                  BSD3 license-file:             LICENSE-author:                   Jan Christiansen+author:                   Jan Christiansen, Thomas Miedema maintainer:               Jan Christiansen <j.christiansen@monoid-it.de> category:                 Distribution build-type:		  Simple
cabal-uninstall.hs view
@@ -1,13 +1,13 @@ module Main where  -import Data.List (groupBy)+import Data.List (groupBy, isPrefixOf) import System.Environment (getArgs) import System.Process (system, readProcessWithExitCode) import System.Exit (ExitCode(..)) import System.IO (hFlush, stdout) import System.Directory (doesDirectoryExist, removeDirectoryRecursive)-import System.FilePath (takeDirectory)+import System.FilePath (takeDirectory, takeBaseName) import Control.Monad.Instances () import Control.Monad.Error @@ -21,16 +21,16 @@ mainError :: [String] -> ErrorT String IO () mainError input = do   (package, force) <- ErrorT (return (parseArgs input))-  info@(PackageInfo _ _ _ libraryDir) <- ErrorT (selectPackageVersion package)+  info@(PackageInfo _ libraryName _ libraryDir) <- ErrorT (selectPackageVersion package)   ErrorT (unregisterPackage info force)-  lift (removeDirectory "package directory" (takeDirectory libraryDir))+  lift (removeDirectory "package directory" (selectDirectory libraryName libraryDir))  (<|) :: a -> [a] -> [a] x <| xs = xs++[x]  usageInfo :: String usageInfo =-  "Version: 0.1.5\n\+  "Version: 0.1.6\n\   \Usage: cabal-uninstall {pkg-id} [--force]\n\   \use sudo if the package is installed globally\n" @@ -111,6 +111,13 @@ parseVersion database ("name:":name:"version:":version:"library-dirs:":libraryDirs:rest) =   return (PackageInfo database name version libraryDirs, rest) parseVersion _ _ = Left "PackageInfo format unknown"++selectDirectory :: String -> FilePath -> FilePath+selectDirectory libraryName libraryDir+  | libraryName `isPrefixOf` (takeBaseName libraryDir) = libraryDir+  | otherwise =+    -- Old Cabal GHC directory structure: <libdir>/<libraryName>/<compiler>+    takeDirectory libraryDir  selectPackageVersion :: String -> IO (Either String PackageInfo) selectPackageVersion package = do