packages feed

cmdargs 0.10.2 → 0.10.3

raw patch · 4 files changed

+28/−7 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

System/Console/CmdArgs/Implicit.hs view
@@ -216,6 +216,13 @@ -- > cmdArgs $ Mode {state = enum [On &= help "Turn on",Off &= help "Turn off"]} -- >   --on   Turn on -- >   --off  Turn off+--+--   This annotation can be used to allow multiple flags within a field:+--+-- > data Mode = Mode {state :: [State]}+-- > cmdArgs $ Mode {state = enum [[] &= ignore, [On] &= help "Turn on", [Off] &= help "Turn off"]}+--+--   Now @--on --off@ would produce @Mode [On,Off]@. enum :: Data val => [val] -> val enum = many 
System/Console/CmdArgs/Implicit/Local.hs view
@@ -15,6 +15,7 @@ import System.Console.CmdArgs.Explicit import System.Console.CmdArgs.Annotate import System.Console.CmdArgs.Default+import qualified Data.Generics.Any.Prelude as A  import Control.Monad import Data.Char@@ -117,13 +118,16 @@ flag_ name (Ann a b) = map (flagAnn a) $ flag_ name b flag_ name (Value x) = [def{flagField=name, flagFlag = remap embed reembed $ value_ name x}] flag_ name x@Ctor{} = flag_ name $ Value $ fromCapture x-flag_ name (Many xs) = map (enum_ name) xs+flag_ name (Many xs) = concatMap (enum_ name) xs flag_ name x = errFlag name $ show x  -enum_ :: String -> Capture Ann -> Flag_-enum_ name (Ann a b) = flagAnn a $ enum_ name b-enum_ name (Value x) = def{flagField=name, flagFlag = flagNone [] (fmap $ setField (name,x)) "", flagEnum=Just $ ctor x}+enum_ :: String -> Capture Ann -> [Flag_]+enum_ name (Ann Ignore _) = []+enum_ name (Ann a b) = map (flagAnn a) $ enum_ name b+enum_ name (Value x) = [def{flagField=name, flagFlag = flagNone [] (fmap upd) "", flagEnum=Just $ ctor x}]+    where upd v | not (A.isString x) && A.isList x = setField (name, getField name v `A.append` x) v+                | otherwise = setField (name,x) v enum_ name x@Ctor{} = enum_ name $ Value $ fromCapture x enum_ name x = errFlag name $ show x 
System/Console/CmdArgs/Test/Implicit/Tests.hs view
@@ -314,15 +314,25 @@     ["test","--","@foo"] === Test17 ["test","@foo"]  +data Debuggable = This | That deriving (Eq,Show,Data,Typeable)+data Test18 = Test18 {test18_ :: [Debuggable]} deriving (Eq,Show,Data,Typeable)++mode18 = cmdArgsMode $ Test18 $ enum [[] &= ignore, [This] &= name "debug-this", [That] &= name "debug-that"]++test18 = do+    let Tester{..} = tester "Test18" mode18+    [] === Test18 []+    ["--debug-this","--debug-that","--debug-this"] === Test18 [This,That,This]+ -- For some reason, these must be at the end, otherwise the Template Haskell -- stage restriction kicks in.  test = test1 >> test2 >> test3 >> test4 >> test5 >> test6 >> test7 >> test8 >> test9 >> test10 >>-       test11 >> test12 >> test13 >> test14 >> test15 >> test16+       test11 >> test12 >> test13 >> test14 >> test15 >> test16 >> test18 demos = zipWith f [1..]         [toDemo mode1, toDemo mode2, toDemo mode3, toDemo mode4, toDemo mode5, toDemo mode6         ,toDemo mode7, toDemo mode8, toDemo mode9, toDemo mode10, toDemo mode11, toDemo mode12-        ,toDemo mode13, toDemo mode14, toDemo mode15, toDemo mode16, toDemo mode17]+        ,toDemo mode13, toDemo mode14, toDemo mode15, toDemo mode16, toDemo mode17, toDemo mode18]     where f i x = x{modeHelp = "Testing various corner cases (" ++ show i ++ ")"}  
cmdargs.cabal view
@@ -1,7 +1,7 @@ cabal-version:      >= 1.6 build-type:         Simple name:               cmdargs-version:            0.10.2+version:            0.10.3 license:            BSD3 license-file:       LICENSE category:           Console