Skip to content

Commit

Permalink
Switch back to the old syntax, the new was quite annoying
Browse files Browse the repository at this point in the history
Document the options in the help
  • Loading branch information
kolmodin committed Oct 1, 2008
1 parent 8135c0c commit fa219c2
Showing 1 changed file with 17 additions and 12 deletions.
29 changes: 17 additions & 12 deletions Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -156,27 +156,27 @@ makeEbuildCommand = CommandUI {
-----------------------------------------------------------------------

data DiffFlags = DiffFlags {
diffMode :: Flag String, -- DiffMode,
-- diffMode :: Flag String, -- DiffMode,
diffVerbosity :: Flag Verbosity,
diffServerURI :: Flag String
}

instance Monoid DiffFlags where
mempty = DiffFlags {
diffMode = mempty,
-- diffMode = mempty,
diffVerbosity = mempty,
diffServerURI = mempty
}
mappend a b = DiffFlags {
diffMode = combine diffMode,
-- diffMode = combine diffMode,
diffVerbosity = combine diffVerbosity,
diffServerURI = combine diffServerURI
}
where combine field = field a `mappend` field b

defaultDiffFlags :: DiffFlags
defaultDiffFlags = DiffFlags {
diffMode = Flag "all",
-- diffMode = Flag "all",
diffVerbosity = Flag normal,
diffServerURI = Flag defaultHackageServerURI
}
Expand All @@ -191,24 +191,29 @@ diffCommand = CommandUI {
commandDefaultFlags = defaultDiffFlags,
commandOptions = \showOrParseArgs ->
[ optionVerbosity diffVerbosity (\v flags -> flags { diffVerbosity = v })
{-
, option [] ["mode"]
"Diff mode, one of: all, newer, missing, additions, common"
diffMode (\v flags -> flags { diffMode = v })
(reqArgFlag "MODE") -- I don't know how to map it strictly to DiffMode
-}
]
}

diffAction :: DiffFlags -> [String] -> GlobalFlags -> IO ()
diffAction flags args globalFlags = do
let verbosity = fromFlag (diffVerbosity flags)
dm0 = fromFlag (diffMode flags)
dm <- case dm0 of
"all" -> return ShowAll
"missing" -> return ShowMissing
"additions" -> return ShowAdditions
"newer" -> return ShowNewer
"common" -> return ShowCommon
_ -> die $ "Unknown mode: " ++ dm0
-- dm0 = fromFlag (diffMode flags)
dm <- case args of
[] -> return ShowAll
["all"] -> return ShowAll
["missing"] -> return ShowMissing
["additions"] -> return ShowAdditions
["newer"] -> return ShowNewer
["common"] -> return ShowCommon
-- TODO: ["package",packagePattern] ->
-- return ShowPackagePattern packagePattern
_ -> die $ "Unknown mode: " ++ unwords args
serverURI <- getServerURI (fromFlag $ diffServerURI flags)
overlayPath <- getOverlayPath verbosity
runDiff verbosity overlayPath serverURI dm
Expand Down

0 comments on commit fa219c2

Please sign in to comment.