balance: tweak flags a bit; we now use -N and -T
-N doesn't seem to be used by Ledger currently; we'll use it as shortcut for --no-total. -T is used by Ledger to set a custom value expression for the final total. I'm going to take it as a shortcut for --row-total instead.
This commit is contained in:
		
							parent
							
								
									ba0623165f
								
							
						
					
					
						commit
						6da4942633
					
				| @ -1003,7 +1003,7 @@ more compact output. Use `--no-elide` to prevent this. | |||||||
| Accounts which have zero balance (and no non-zero subaccounts) are | Accounts which have zero balance (and no non-zero subaccounts) are | ||||||
| omitted. Use `-E/--empty` to show them. | omitted. Use `-E/--empty` to show them. | ||||||
| 
 | 
 | ||||||
| A final total is displayed by default; use `--no-total` to suppress it. | A final total is displayed by default; use `-N/--no-total` to suppress it. | ||||||
| 
 | 
 | ||||||
| ##### Flat mode | ##### Flat mode | ||||||
| 
 | 
 | ||||||
| @ -1066,10 +1066,10 @@ considered, not just the ones with activity during the report period | |||||||
| (use -E to include low-activity accounts which would otherwise would | (use -E to include low-activity accounts which would otherwise would | ||||||
| be omitted). | be omitted). | ||||||
| 
 | 
 | ||||||
| The `--row-totals` flag adds an additional column showing the total | The `-T/--row-total` flag adds an additional column showing the total | ||||||
| for each row.  The `-A/--average` flag adds one more column showing | for each row.  The `-A/--average` flag adds a column showing the | ||||||
| the average value in each row. Note in `--H/--historical` mode only | average value in each row. Note in `--H/--historical` mode only the | ||||||
| the average is useful, and in `--cumulative` mode neither is useful. | average is useful, and in `--cumulative` mode neither is useful. | ||||||
| 
 | 
 | ||||||
| ##### Custom output formats | ##### Custom output formats | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -85,8 +85,8 @@ data ReportOpts = ReportOpts { | |||||||
|     ,balancetype_    :: BalanceType |     ,balancetype_    :: BalanceType | ||||||
|     ,accountlistmode_  :: AccountListMode |     ,accountlistmode_  :: AccountListMode | ||||||
|     ,drop_           :: Int |     ,drop_           :: Int | ||||||
|  |     ,row_total_      :: Bool | ||||||
|     ,no_total_       :: Bool |     ,no_total_       :: Bool | ||||||
|     ,row_totals_     :: Bool |  | ||||||
|  } deriving (Show, Data, Typeable) |  } deriving (Show, Data, Typeable) | ||||||
| 
 | 
 | ||||||
| instance Default ReportOpts where def = defreportopts | instance Default ReportOpts where def = defreportopts | ||||||
| @ -148,8 +148,8 @@ rawOptsToReportOpts rawopts = do | |||||||
|     ,balancetype_ = balancetypeopt rawopts |     ,balancetype_ = balancetypeopt rawopts | ||||||
|     ,accountlistmode_ = accountlistmodeopt rawopts |     ,accountlistmode_ = accountlistmodeopt rawopts | ||||||
|     ,drop_        = intopt "drop" rawopts |     ,drop_        = intopt "drop" rawopts | ||||||
|  |     ,row_total_   = boolopt "row-total" rawopts | ||||||
|     ,no_total_    = boolopt "no-total" rawopts |     ,no_total_    = boolopt "no-total" rawopts | ||||||
|     ,row_totals_  = boolopt "row-totals" rawopts |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| accountlistmodeopt :: RawOpts -> AccountListMode | accountlistmodeopt :: RawOpts -> AccountListMode | ||||||
|  | |||||||
| @ -261,15 +261,15 @@ balancemode = (defCommandMode $ ["balance"] ++ aliases) { -- also accept but don | |||||||
|  ,modeGroupFlags = C.Group { |  ,modeGroupFlags = C.Group { | ||||||
|      groupUnnamed = [ |      groupUnnamed = [ | ||||||
|       flagNone ["tree"] (\opts -> setboolopt "tree" opts) "show accounts as a tree (default in simple reports)" |       flagNone ["tree"] (\opts -> setboolopt "tree" opts) "show accounts as a tree (default in simple reports)" | ||||||
|      ,flagNone ["flat"] (\opts -> setboolopt "flat" opts) "show accounts as a list (default in multicolumn)" |      ,flagNone ["flat"] (\opts -> setboolopt "flat" opts) "show accounts as a list (default in multicolumn mode)" | ||||||
|      ,flagReq  ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "flat mode: omit N leading account name parts" |      ,flagReq  ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "flat mode: omit N leading account name parts" | ||||||
|      ,flagReq  ["format"] (\s opts -> Right $ setopt "format" s opts) "FORMATSTR" "tree mode: use this custom line format" |      ,flagReq  ["format"] (\s opts -> Right $ setopt "format" s opts) "FORMATSTR" "tree mode: use this custom line format" | ||||||
|      ,flagNone ["no-elide"] (\opts -> setboolopt "no-elide" opts) "tree mode: don't squash boring parent accounts" |      ,flagNone ["no-elide"] (\opts -> setboolopt "no-elide" opts) "tree mode: don't squash boring parent accounts" | ||||||
|      ,flagNone ["no-total"] (\opts -> setboolopt "no-total" opts) "don't show the final total(s) row" |  | ||||||
|      ,flagNone ["row-totals"] (\opts -> setboolopt "row-totals" opts) "multicolumn mode: show a row totals column" |  | ||||||
|      ,flagNone ["average","A"] (\opts -> setboolopt "average" opts) "multicolumn mode: show a row averages column" |  | ||||||
|      ,flagNone ["cumulative"] (\opts -> setboolopt "cumulative" opts) "multicolumn mode: show accumulated ending balances" |  | ||||||
|      ,flagNone ["historical","H"] (\opts -> setboolopt "historical" opts) "multicolumn mode: show historical ending balances" |      ,flagNone ["historical","H"] (\opts -> setboolopt "historical" opts) "multicolumn mode: show historical ending balances" | ||||||
|  |      ,flagNone ["cumulative"] (\opts -> setboolopt "cumulative" opts) "multicolumn mode: show accumulated ending balances" | ||||||
|  |      ,flagNone ["average","A"] (\opts -> setboolopt "average" opts) "multicolumn mode: show a row average column" | ||||||
|  |      ,flagNone ["row-total","T"] (\opts -> setboolopt "row-total" opts) "multicolumn mode: show a row total column" | ||||||
|  |      ,flagNone ["no-total","N"] (\opts -> setboolopt "no-total" opts) "don't show the final total row" | ||||||
|      ] |      ] | ||||||
|      ++ outputflags |      ++ outputflags | ||||||
|     ,groupHidden = [] |     ,groupHidden = [] | ||||||
| @ -397,13 +397,13 @@ formatField opts accountName depth total ljust min max field = case field of | |||||||
| multiBalanceReportAsCsv :: ReportOpts -> MultiBalanceReport -> CSV | multiBalanceReportAsCsv :: ReportOpts -> MultiBalanceReport -> CSV | ||||||
| multiBalanceReportAsCsv opts (MultiBalanceReport (colspans, items, (coltotals,tot,avg))) = | multiBalanceReportAsCsv opts (MultiBalanceReport (colspans, items, (coltotals,tot,avg))) = | ||||||
|   ("account" : "short account" : "indent" : map showDateSpan colspans |   ("account" : "short account" : "indent" : map showDateSpan colspans | ||||||
|    ++ (if row_totals_ opts then ["total"] else []) |    ++ (if row_total_ opts then ["total"] else []) | ||||||
|    ++ (if average_ opts then ["average"] else []) |    ++ (if average_ opts then ["average"] else []) | ||||||
|   ) : |   ) : | ||||||
|   [a : a' : show i : |   [a : a' : show i : | ||||||
|    map showMixedAmountOneLineWithoutPrice |    map showMixedAmountOneLineWithoutPrice | ||||||
|    (amts |    (amts | ||||||
|     ++ (if row_totals_ opts then [rowtot] else []) |     ++ (if row_total_ opts then [rowtot] else []) | ||||||
|     ++ (if average_ opts then [rowavg] else [])) |     ++ (if average_ opts then [rowavg] else [])) | ||||||
|   | ((a,a',i), amts, rowtot, rowavg) <- items] |   | ((a,a',i), amts, rowtot, rowavg) <- items] | ||||||
|   ++ |   ++ | ||||||
| @ -412,7 +412,7 @@ multiBalanceReportAsCsv opts (MultiBalanceReport (colspans, items, (coltotals,to | |||||||
|   else [["totals", "", ""] |   else [["totals", "", ""] | ||||||
|         ++ map showMixedAmountOneLineWithoutPrice ( |         ++ map showMixedAmountOneLineWithoutPrice ( | ||||||
|            coltotals |            coltotals | ||||||
|            ++ (if row_totals_ opts then [tot] else []) |            ++ (if row_total_ opts then [tot] else []) | ||||||
|            ++ (if average_ opts then [avg] else []) |            ++ (if average_ opts then [avg] else []) | ||||||
|            )] |            )] | ||||||
| 
 | 
 | ||||||
| @ -435,7 +435,7 @@ periodBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (coltotal | |||||||
|   where |   where | ||||||
|     trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init) |     trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init) | ||||||
|     colheadings = map showDateSpan colspans |     colheadings = map showDateSpan colspans | ||||||
|                   ++ (if row_totals_ opts then ["  Total"] else []) |                   ++ (if row_total_ opts then ["  Total"] else []) | ||||||
|                   ++ (if average_ opts then ["Average"] else []) |                   ++ (if average_ opts then ["Average"] else []) | ||||||
|     items' | empty_ opts = items |     items' | empty_ opts = items | ||||||
|            | otherwise   = items -- dbg "2" $ filter (any (not . isZeroMixedAmount) . snd) $ dbg "1" items |            | otherwise   = items -- dbg "2" $ filter (any (not . isZeroMixedAmount) . snd) $ dbg "1" items | ||||||
| @ -445,12 +445,12 @@ periodBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (coltotal | |||||||
|       | otherwise  = maybeAccountNameDrop opts a |       | otherwise  = maybeAccountNameDrop opts a | ||||||
|     acctswidth = maximum $ map length $ accts |     acctswidth = maximum $ map length $ accts | ||||||
|     rowvals (_,as,rowtot,rowavg) = as |     rowvals (_,as,rowtot,rowavg) = as | ||||||
|                                    ++ (if row_totals_ opts then [rowtot] else []) |                                    ++ (if row_total_ opts then [rowtot] else []) | ||||||
|                                    ++ (if average_ opts then [rowavg] else []) |                                    ++ (if average_ opts then [rowavg] else []) | ||||||
|     totalrow | no_total_ opts = row "" [] |     totalrow | no_total_ opts = row "" [] | ||||||
|              | otherwise      = row "" $ |              | otherwise      = row "" $ | ||||||
|                                 coltotals |                                 coltotals | ||||||
|                                 ++ (if row_totals_ opts then [tot] else []) |                                 ++ (if row_total_ opts then [tot] else []) | ||||||
|                                 ++ (if average_ opts then [avg] else []) |                                 ++ (if average_ opts then [avg] else []) | ||||||
| 
 | 
 | ||||||
| -- | Render a multi-column cumulative balance report as plain text suitable for console output. | -- | Render a multi-column cumulative balance report as plain text suitable for console output. | ||||||
| @ -468,7 +468,7 @@ cumulativeBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt | |||||||
|   where |   where | ||||||
|     trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init) |     trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init) | ||||||
|     colheadings = map (maybe "" (showDate . prevday) . spanEnd) colspans |     colheadings = map (maybe "" (showDate . prevday) . spanEnd) colspans | ||||||
|                   ++ (if row_totals_ opts then ["  Total"] else []) |                   ++ (if row_total_ opts then ["  Total"] else []) | ||||||
|                   ++ (if average_ opts then ["Average"] else []) |                   ++ (if average_ opts then ["Average"] else []) | ||||||
|     accts = map renderacct items |     accts = map renderacct items | ||||||
|     renderacct ((a,a',i),_,_,_) |     renderacct ((a,a',i),_,_,_) | ||||||
| @ -476,12 +476,12 @@ cumulativeBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt | |||||||
|       | otherwise  = maybeAccountNameDrop opts a |       | otherwise  = maybeAccountNameDrop opts a | ||||||
|     acctswidth = maximum $ map length $ accts |     acctswidth = maximum $ map length $ accts | ||||||
|     rowvals (_,as,rowtot,rowavg) = as |     rowvals (_,as,rowtot,rowavg) = as | ||||||
|                                    ++ (if row_totals_ opts then [rowtot] else []) |                                    ++ (if row_total_ opts then [rowtot] else []) | ||||||
|                                    ++ (if average_ opts then [rowavg] else []) |                                    ++ (if average_ opts then [rowavg] else []) | ||||||
|     addtotalrow | no_total_ opts = id |     addtotalrow | no_total_ opts = id | ||||||
|                 | otherwise      = (+----+ (row "" $ |                 | otherwise      = (+----+ (row "" $ | ||||||
|                                     coltotals |                                     coltotals | ||||||
|                                     ++ (if row_totals_ opts then [tot] else []) |                                     ++ (if row_total_ opts then [tot] else []) | ||||||
|                                     ++ (if average_ opts then [avg] else []) |                                     ++ (if average_ opts then [avg] else []) | ||||||
|                                     )) |                                     )) | ||||||
| 
 | 
 | ||||||
| @ -500,7 +500,7 @@ historicalBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt | |||||||
|   where |   where | ||||||
|     trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init) |     trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init) | ||||||
|     colheadings = map (maybe "" (showDate . prevday) . spanEnd) colspans |     colheadings = map (maybe "" (showDate . prevday) . spanEnd) colspans | ||||||
|                   ++ (if row_totals_ opts then ["  Total"] else []) |                   ++ (if row_total_ opts then ["  Total"] else []) | ||||||
|                   ++ (if average_ opts then ["Average"] else []) |                   ++ (if average_ opts then ["Average"] else []) | ||||||
|     accts = map renderacct items |     accts = map renderacct items | ||||||
|     renderacct ((a,a',i),_,_,_) |     renderacct ((a,a',i),_,_,_) | ||||||
| @ -508,12 +508,12 @@ historicalBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt | |||||||
|       | otherwise  = maybeAccountNameDrop opts a |       | otherwise  = maybeAccountNameDrop opts a | ||||||
|     acctswidth = maximum $ map length $ accts |     acctswidth = maximum $ map length $ accts | ||||||
|     rowvals (_,as,rowtot,rowavg) = as |     rowvals (_,as,rowtot,rowavg) = as | ||||||
|                              ++ (if row_totals_ opts then [rowtot] else []) |                              ++ (if row_total_ opts then [rowtot] else []) | ||||||
|                              ++ (if average_ opts then [rowavg] else []) |                              ++ (if average_ opts then [rowavg] else []) | ||||||
|     addtotalrow | no_total_ opts = id |     addtotalrow | no_total_ opts = id | ||||||
|                 | otherwise      = (+----+ (row "" $ |                 | otherwise      = (+----+ (row "" $ | ||||||
|                                     coltotals |                                     coltotals | ||||||
|                                     ++ (if row_totals_ opts then [tot] else []) |                                     ++ (if row_total_ opts then [tot] else []) | ||||||
|                                     ++ (if average_ opts then [avg] else []) |                                     ++ (if average_ opts then [avg] else []) | ||||||
|                                     )) |                                     )) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user