commodities: add commodities command

This commit is contained in:
Simon Michael 2019-02-14 02:22:11 -08:00
parent 9e3cdef1e9
commit d7a815fc08
6 changed files with 51 additions and 1 deletions

View File

@ -27,6 +27,7 @@ module Hledger.Cli.Commands (
,module Hledger.Cli.Commands.Checkdates
,module Hledger.Cli.Commands.Checkdupes
,module Hledger.Cli.Commands.Close
,module Hledger.Cli.Commands.Commodities
,module Hledger.Cli.Commands.Help
,module Hledger.Cli.Commands.Import
,module Hledger.Cli.Commands.Incomestatement
@ -67,6 +68,7 @@ import Hledger.Cli.Commands.Cashflow
import Hledger.Cli.Commands.Checkdates
import Hledger.Cli.Commands.Checkdupes
import Hledger.Cli.Commands.Close
import Hledger.Cli.Commands.Commodities
import Hledger.Cli.Commands.Files
import Hledger.Cli.Commands.Help
import Hledger.Cli.Commands.Import
@ -96,6 +98,7 @@ builtinCommands = [
,(checkdatesmode , checkdates)
,(checkdupesmode , checkdupes)
,(closemode , close)
,(commoditiesmode , commodities)
,(helpmode , help')
,(importmode , importcmd)
,(filesmode , files)
@ -164,6 +167,7 @@ commandsList = unlines [
," accounts (a) show account names"
," activity show postings-per-interval bar charts"
," balance (b, bal) show balance changes/end balances/budgets in accounts"
," commodities show commodity/currency symbols"
," files show input file paths"
," prices show market price records"
," print (p, txns) show transactions (journal entries)"

View File

@ -0,0 +1,36 @@
{-|
The @commodities@ command lists commodity/currency symbols.
-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
module Hledger.Cli.Commands.Commodities (
commoditiesmode
,commodities
) where
import Control.Monad
import Data.List
import qualified Data.Map as M
import qualified Data.Text.IO as T
import Hledger
import Hledger.Cli.CliOptions
-- | Command line options for this command.
commoditiesmode = hledgerCommandMode
($(embedFileRelative "Hledger/Cli/Commands/Commodities.txt"))
[]
[generalflagsgroup2]
[]
([], Nothing)
commodities :: CliOpts -> Journal -> IO ()
commodities _copts j = do
let cs = filter (/= "AUTO") $
nub $ sort $ M.keys (jcommodities j) ++ M.keys (jinferredcommodities j)
forM_ cs T.putStrLn

View File

@ -0,0 +1,4 @@
commodities\
List all commodity/currency symbols used or declared in the journal.
_FLAGS_

View File

@ -0,0 +1,4 @@
commodities
List all commodity/currency symbols used or declared in the journal.
_FLAGS_

View File

@ -4,7 +4,7 @@ cabal-version: 1.12
--
-- see: https://github.com/sol/hpack
--
-- hash: 23816762c7f1abc912788cda07079f28217cdf0638286735e84cfa4f5a24ca2e
-- hash: 837fc1f3539c3f3c9f0eb1cbde0b6b361836e7f8c2a8c7cefaaa7f626f17658e
name: hledger
version: 1.13.99
@ -119,6 +119,7 @@ library
Hledger.Cli.Commands.Checkdates
Hledger.Cli.Commands.Checkdupes
Hledger.Cli.Commands.Close
Hledger.Cli.Commands.Commodities
Hledger.Cli.Commands.Help
Hledger.Cli.Commands.Files
Hledger.Cli.Commands.Import

View File

@ -163,6 +163,7 @@ library:
- Hledger.Cli.Commands.Checkdates
- Hledger.Cli.Commands.Checkdupes
- Hledger.Cli.Commands.Close
- Hledger.Cli.Commands.Commodities
- Hledger.Cli.Commands.Help
- Hledger.Cli.Commands.Files
- Hledger.Cli.Commands.Import