add -D/--daily flag

This commit is contained in:
Simon Michael 2010-07-24 19:08:33 +00:00
parent ff6b979816
commit 56226d72e6
3 changed files with 6 additions and 1 deletions

View File

@ -87,6 +87,7 @@ options = [
,Option "" ["flat"] (NoArg Flat) "balance: show full account names, unindented" ,Option "" ["flat"] (NoArg Flat) "balance: show full account names, unindented"
,Option "" ["drop"] (ReqArg Drop "N") "balance: with --flat, elide first N account name components" ,Option "" ["drop"] (ReqArg Drop "N") "balance: with --flat, elide first N account name components"
,Option "" ["no-total"] (NoArg NoTotal) "balance: hide the final total" ,Option "" ["no-total"] (NoArg NoTotal) "balance: hide the final total"
,Option "D" ["daily"] (NoArg DailyOpt) "register, stats: report by day"
,Option "W" ["weekly"] (NoArg WeeklyOpt) "register, stats: report by week" ,Option "W" ["weekly"] (NoArg WeeklyOpt) "register, stats: report by week"
,Option "M" ["monthly"] (NoArg MonthlyOpt) "register, stats: report by month" ,Option "M" ["monthly"] (NoArg MonthlyOpt) "register, stats: report by month"
,Option "Q" ["quarterly"] (NoArg QuarterlyOpt) "register, stats: report by quarter" ,Option "Q" ["quarterly"] (NoArg QuarterlyOpt) "register, stats: report by quarter"
@ -131,6 +132,7 @@ data Opt =
Drop {value::String} | Drop {value::String} |
NoTotal | NoTotal |
SubTotal | SubTotal |
DailyOpt |
WeeklyOpt | WeeklyOpt |
MonthlyOpt | MonthlyOpt |
QuarterlyOpt | QuarterlyOpt |
@ -215,6 +217,7 @@ intervalFromOpts :: [Opt] -> Interval
intervalFromOpts opts = intervalFromOpts opts =
case (periodopts, intervalopts) of case (periodopts, intervalopts) of
((p:_), _) -> fst $ parsePeriodExpr d p where d = parsedate "0001/01/01" -- unused ((p:_), _) -> fst $ parsePeriodExpr d p where d = parsedate "0001/01/01" -- unused
(_, (DailyOpt:_)) -> Daily
(_, (WeeklyOpt:_)) -> Weekly (_, (WeeklyOpt:_)) -> Weekly
(_, (MonthlyOpt:_)) -> Monthly (_, (MonthlyOpt:_)) -> Monthly
(_, (QuarterlyOpt:_)) -> Quarterly (_, (QuarterlyOpt:_)) -> Quarterly
@ -222,7 +225,7 @@ intervalFromOpts opts =
(_, _) -> NoInterval (_, _) -> NoInterval
where where
periodopts = reverse $ optValuesForConstructor Period opts periodopts = reverse $ optValuesForConstructor Period opts
intervalopts = reverse $ filter (`elem` [WeeklyOpt,MonthlyOpt,QuarterlyOpt,YearlyOpt]) opts intervalopts = reverse $ filter (`elem` [DailyOpt,WeeklyOpt,MonthlyOpt,QuarterlyOpt,YearlyOpt]) opts
-- | Get the value of the (last) depth option, if any. -- | Get the value of the (last) depth option, if any.
depthFromOpts :: [Opt] -> Maybe Int depthFromOpts :: [Opt] -> Maybe Int

View File

@ -323,6 +323,7 @@ tests = TestList [
,"intervalFromOpts" ~: do ,"intervalFromOpts" ~: do
let gives = is . intervalFromOpts let gives = is . intervalFromOpts
[] `gives` NoInterval [] `gives` NoInterval
[DailyOpt] `gives` Daily
[WeeklyOpt] `gives` Weekly [WeeklyOpt] `gives` Weekly
[MonthlyOpt] `gives` Monthly [MonthlyOpt] `gives` Monthly
[QuarterlyOpt] `gives` Quarterly [QuarterlyOpt] `gives` Quarterly

View File

@ -233,6 +233,7 @@ Here is the command-line help:
--flat balance: show full account names, unindented --flat balance: show full account names, unindented
--drop=N balance: with --flat, elide first N account name components --drop=N balance: with --flat, elide first N account name components
--no-total balance: hide the final total --no-total balance: hide the final total
-D --daily register, stats: report by day
-W --weekly register, stats: report by week -W --weekly register, stats: report by week
-M --monthly register, stats: report by month -M --monthly register, stats: report by month
-Q --quarterly register, stats: report by quarter -Q --quarterly register, stats: report by quarter