print,reg,balcmds: list output formats accurately in --help (#689)
Also: - tweak the unsupported output format message - Hledger.Cli.CliOptions no longer exports outputflags
This commit is contained in:
		
							parent
							
								
									5f1a864c20
								
							
						
					
					
						commit
						61bec588d2
					
				@ -15,7 +15,7 @@ module Hledger.Cli.CliOptions (
 | 
				
			|||||||
  hiddenflags,
 | 
					  hiddenflags,
 | 
				
			||||||
  inputflags,
 | 
					  inputflags,
 | 
				
			||||||
  reportflags,
 | 
					  reportflags,
 | 
				
			||||||
  outputflags,
 | 
					  -- outputflags,
 | 
				
			||||||
  outputFormatFlag,
 | 
					  outputFormatFlag,
 | 
				
			||||||
  outputFileFlag,
 | 
					  outputFileFlag,
 | 
				
			||||||
  generalflagsgroup1,
 | 
					  generalflagsgroup1,
 | 
				
			||||||
@ -192,9 +192,18 @@ hiddenflags = [
 | 
				
			|||||||
 ]
 | 
					 ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- | Common output-related flags: --output-file, --output-format...
 | 
					-- | Common output-related flags: --output-file, --output-format...
 | 
				
			||||||
outputflags = [outputFormatFlag, outputFileFlag]
 | 
					
 | 
				
			||||||
outputFormatFlag = flagReq  ["output-format","O"] (\s opts -> Right $ setopt "output-format" s opts) "FMT" "select the output format. Supported formats:\ntxt, csv, html."
 | 
					-- outputflags = [outputFormatFlag, outputFileFlag]
 | 
				
			||||||
outputFileFlag   = flagReq  ["output-file","o"]   (\s opts -> Right $ setopt "output-file" s opts) "FILE" "write output to FILE. A file extension matching one of the above formats selects that format."
 | 
					
 | 
				
			||||||
 | 
					outputFormatFlag :: [String] -> Flag RawOpts
 | 
				
			||||||
 | 
					outputFormatFlag fmts = flagReq
 | 
				
			||||||
 | 
					  ["output-format","O"] (\s opts -> Right $ setopt "output-format" s opts) "FMT"
 | 
				
			||||||
 | 
					  ("select the output format. Supported formats:\n" ++ intercalate ", " fmts ++ ".")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					outputFileFlag :: Flag RawOpts
 | 
				
			||||||
 | 
					outputFileFlag = flagReq
 | 
				
			||||||
 | 
					  ["output-file","o"] (\s opts -> Right $ setopt "output-file" s opts) "FILE"
 | 
				
			||||||
 | 
					  "write output to FILE. A file extension matching one of the above formats selects that format."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
argsFlag :: FlagHelp -> Arg RawOpts
 | 
					argsFlag :: FlagHelp -> Arg RawOpts
 | 
				
			||||||
argsFlag desc = flagArg (\s opts -> Right $ setopt "args" s opts) desc
 | 
					argsFlag desc = flagArg (\s opts -> Right $ setopt "args" s opts) desc
 | 
				
			||||||
 | 
				
			|||||||
@ -295,8 +295,9 @@ balancemode = hledgerCommandMode
 | 
				
			|||||||
   ,flagNone ["invert"] (setboolopt "invert") "display all amounts with reversed sign"
 | 
					   ,flagNone ["invert"] (setboolopt "invert") "display all amounts with reversed sign"
 | 
				
			||||||
   ,flagNone ["transpose"] (setboolopt "transpose") "transpose rows and columns"
 | 
					   ,flagNone ["transpose"] (setboolopt "transpose") "transpose rows and columns"
 | 
				
			||||||
   ,flagNone ["percent", "%"] (setboolopt "percent") "express values in percentage of each column's total"
 | 
					   ,flagNone ["percent", "%"] (setboolopt "percent") "express values in percentage of each column's total"
 | 
				
			||||||
 | 
					   ,outputFormatFlag ["txt","html","csv","json"]
 | 
				
			||||||
 | 
					   ,outputFileFlag
 | 
				
			||||||
   ]
 | 
					   ]
 | 
				
			||||||
   ++ outputflags
 | 
					 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
  [generalflagsgroup1]
 | 
					  [generalflagsgroup1]
 | 
				
			||||||
  hiddenflags
 | 
					  hiddenflags
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,9 @@ printmode = hledgerCommandMode
 | 
				
			|||||||
    "show all amounts explicitly"
 | 
					    "show all amounts explicitly"
 | 
				
			||||||
  ,flagNone ["new"] (setboolopt "new")
 | 
					  ,flagNone ["new"] (setboolopt "new")
 | 
				
			||||||
    "show only newer-dated transactions added in each file since last run"
 | 
					    "show only newer-dated transactions added in each file since last run"
 | 
				
			||||||
  ] ++ outputflags)
 | 
					  ,outputFormatFlag ["txt","csv","json"]
 | 
				
			||||||
 | 
					  ,outputFileFlag
 | 
				
			||||||
 | 
					  ])
 | 
				
			||||||
  [generalflagsgroup1]
 | 
					  [generalflagsgroup1]
 | 
				
			||||||
  hiddenflags
 | 
					  hiddenflags
 | 
				
			||||||
  ([], Just $ argsFlag "[QUERY]")
 | 
					  ([], Just $ argsFlag "[QUERY]")
 | 
				
			||||||
 | 
				
			|||||||
@ -51,7 +51,9 @@ registermode = hledgerCommandMode
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
      ++ " or $COLUMNS). -wN,M sets description width as well."
 | 
					      ++ " or $COLUMNS). -wN,M sets description width as well."
 | 
				
			||||||
     )
 | 
					     )
 | 
				
			||||||
  ] ++ outputflags)
 | 
					  ,outputFormatFlag ["txt","csv","json"]
 | 
				
			||||||
 | 
					  ,outputFileFlag
 | 
				
			||||||
 | 
					  ])
 | 
				
			||||||
  [generalflagsgroup1]
 | 
					  [generalflagsgroup1]
 | 
				
			||||||
  hiddenflags
 | 
					  hiddenflags
 | 
				
			||||||
  ([], Just $ argsFlag "[QUERY]")
 | 
					  ([], Just $ argsFlag "[QUERY]")
 | 
				
			||||||
 | 
				
			|||||||
@ -108,7 +108,7 @@ compoundBalanceCommandMode CompoundBalanceCommandSpec{..} =
 | 
				
			|||||||
    ,flagNone ["pretty-tables"] (setboolopt "pretty-tables") "use unicode when displaying tables"
 | 
					    ,flagNone ["pretty-tables"] (setboolopt "pretty-tables") "use unicode when displaying tables"
 | 
				
			||||||
    ,flagNone ["sort-amount","S"] (setboolopt "sort-amount") "sort by amount instead of account code/name"
 | 
					    ,flagNone ["sort-amount","S"] (setboolopt "sort-amount") "sort by amount instead of account code/name"
 | 
				
			||||||
    ,flagNone ["percent", "%"] (setboolopt "percent") "express values in percentage of each column's total"
 | 
					    ,flagNone ["percent", "%"] (setboolopt "percent") "express values in percentage of each column's total"
 | 
				
			||||||
    ,outputFormatFlag
 | 
					    ,outputFormatFlag ["txt","html","csv","json"]
 | 
				
			||||||
    ,outputFileFlag
 | 
					    ,outputFileFlag
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
    [generalflagsgroup1]
 | 
					    [generalflagsgroup1]
 | 
				
			||||||
 | 
				
			|||||||
@ -60,7 +60,7 @@ import Hledger.Utils
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-- | Standard error message for a bad output format specified with -O/-o.
 | 
					-- | Standard error message for a bad output format specified with -O/-o.
 | 
				
			||||||
unsupportedOutputFormatError :: String -> String
 | 
					unsupportedOutputFormatError :: String -> String
 | 
				
			||||||
unsupportedOutputFormatError fmt = "Sorry, output format \""++fmt++"\" is unrecognised or not yet implemented for this report."
 | 
					unsupportedOutputFormatError fmt = "Sorry, output format \""++fmt++"\" is unrecognised or not yet implemented for this report or report mode."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- | Parse the user's specified journal file(s) as a Journal, maybe apply some
 | 
					-- | Parse the user's specified journal file(s) as a Journal, maybe apply some
 | 
				
			||||||
-- transformations according to options, and run a hledger command with it.
 | 
					-- transformations according to options, and run a hledger command with it.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user