Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/231351146f057cd7f8604b45d6bf38254cb99624 >--------------------------------------------------------------- commit 231351146f057cd7f8604b45d6bf38254cb99624 Author: Duncan Coutts <[email protected]> Date: Fri Mar 4 23:39:56 2011 +0000 Unbreak the world target I'd accidentally left out the world target from the parsing phase of the new user target handling system, so cabal install world did not work. Now added to the target parser. >--------------------------------------------------------------- cabal-install/Distribution/Client/Targets.hs | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cabal-install/Distribution/Client/Targets.hs b/cabal-install/Distribution/Client/Targets.hs index 9913dca..79b1cef 100644 --- a/cabal-install/Distribution/Client/Targets.hs +++ b/cabal-install/Distribution/Client/Targets.hs @@ -202,13 +202,17 @@ data UserTargetProblem | UserTargetUnexpectedUriScheme String | UserTargetUnrecognisedUri String | UserTargetUnrecognised String + | UserTargetBadWorldPkg deriving Show readUserTarget :: String -> IO (Either UserTargetProblem UserTarget) readUserTarget targetstr = case testNamedTargets targetstr of - Just target -> return target - Nothing -> do + Just (Dependency (PackageName "world") verrange) + | verrange == anyVersion -> return (Right UserTargetWorld) + | otherwise -> return (Left UserTargetBadWorldPkg) + Just dep -> return (Right (UserTargetNamed dep)) + Nothing -> do fileTarget <- testFileTargets targetstr case fileTarget of Just target -> return target @@ -217,8 +221,7 @@ readUserTarget targetstr = Just target -> return target Nothing -> return (Left (UserTargetUnrecognised targetstr)) where - testNamedTargets = fmap (Right . UserTargetNamed) - . readPToMaybe parseDependencyOrPackageId + testNamedTargets = readPToMaybe parseDependencyOrPackageId testFileTargets filename = do isDir <- doesDirectoryExist filename @@ -292,6 +295,10 @@ reportUserTargetProblems problems = do ++ " - cabal files 'pkgname.cabal' or package directories 'pkgname/'\n" ++ " - package tarballs 'pkgname.tar.gz' or 'http://example.com/pkgname.tar.gz'" + case [ () | UserTargetBadWorldPkg <- problems ] of + [] -> return () + _ -> die "The special 'world' target does not take any version." + case [ target | UserTargetNonexistantFile target <- problems ] of [] -> return () target -> die _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
