Skip to content

Commit

Permalink
Put the configurations flags into each UnresolvedDependency
Browse files Browse the repository at this point in the history
We don't actually have per-package flags yet. All -f flags
on the install/upgrade command line apply to every paclage.
  • Loading branch information
dcoutts committed Jun 10, 2008
1 parent 7b7a808 commit 7a54b87
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
13 changes: 6 additions & 7 deletions Hackage/Setup.hs
Expand Up @@ -45,14 +45,16 @@ import Distribution.Simple.Setup
( Flag(..), toFlag, flagToList, trueArg, optionVerbosity )
import Distribution.Version
( Version(Version) )
import Distribution.Package
( Dependency )
import Distribution.Text
( Text(parse), display )
import Distribution.ReadE
( readP_to_E )
import Distribution.Verbosity (Verbosity, normal)

import Hackage.Types
( UnresolvedDependency(..), Username(..), Password(..) )
( Username(..), Password(..) )
import Hackage.ParseUtils (readPToMaybe, parseDependencyOrPackageId)

import Data.Monoid (Monoid(..))
Expand Down Expand Up @@ -357,15 +359,12 @@ usagePackages name pname =
++ " or: " ++ pname ++ " " ++ name ++ " [PACKAGES]\n\n"
++ "Flags for " ++ name ++ ":"

parsePackageArgs :: [String] -> Either String [UnresolvedDependency]
--TODO: do we want to allow per-package flags?
parsePackageArgs :: [String] -> Either String [Dependency]
parsePackageArgs = parsePkgArgs []
where
parsePkgArgs ds [] = Right (reverse ds)
parsePkgArgs ds (arg:args) =
case readPToMaybe parseDependencyOrPackageId arg of
Just dep -> let d = UnresolvedDependency {
dependency = dep,
depFlags = []
}
in parsePkgArgs (d:ds) args
Just dep -> parsePkgArgs (dep:ds) args
Nothing -> Left ("Failed to parse package dependency: " ++ show arg)
14 changes: 11 additions & 3 deletions Main.hs
Expand Up @@ -14,6 +14,8 @@
module Main where

import Hackage.Setup
import Hackage.Types
( UnresolvedDependency(UnresolvedDependency) )
import Distribution.Simple.Setup (Flag(..), fromFlag, fromFlagOrDefault,
flagToMaybe,SDistFlags,sdistCommand)
import qualified Distribution.Simple.Setup as Cabal
Expand Down Expand Up @@ -159,7 +161,9 @@ installAction (cflags,iflags) extraArgs = do
(comp, conf) <- configCompilerAux cflags'
install verbosity
(configPackageDB cflags') (configRepos config)
comp conf cflags' iflags pkgs
comp conf cflags' iflags
[ UnresolvedDependency pkg (Cabal.configConfigurationsFlags cflags')
| pkg <- pkgs ]

listAction :: ListFlags -> [String] -> IO ()
listAction listFlags extraArgs = do
Expand Down Expand Up @@ -194,7 +198,9 @@ upgradeAction (cflags,iflags) extraArgs = do
(comp, conf) <- configCompilerAux cflags'
upgrade verbosity
(configPackageDB cflags') (configRepos config)
comp conf cflags' iflags pkgs
comp conf cflags' iflags
[ UnresolvedDependency pkg (Cabal.configConfigurationsFlags cflags')
| pkg <- pkgs ]

fetchAction :: Flag Verbosity -> [String] -> IO ()
fetchAction verbosityFlag extraArgs = do
Expand All @@ -206,7 +212,9 @@ fetchAction verbosityFlag extraArgs = do
(comp, conf) <- configCompilerAux flags
fetch verbosity
(configPackageDB flags) (configRepos config)
comp conf pkgs
comp conf
[ UnresolvedDependency pkg [] --TODO: flags?
| pkg <- pkgs ]

uploadAction :: UploadFlags -> [String] -> IO ()
uploadAction flags extraArgs = do
Expand Down

0 comments on commit 7a54b87

Please sign in to comment.