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.Checkdates
,module Hledger.Cli.Commands.Checkdupes ,module Hledger.Cli.Commands.Checkdupes
,module Hledger.Cli.Commands.Close ,module Hledger.Cli.Commands.Close
,module Hledger.Cli.Commands.Commodities
,module Hledger.Cli.Commands.Help ,module Hledger.Cli.Commands.Help
,module Hledger.Cli.Commands.Import ,module Hledger.Cli.Commands.Import
,module Hledger.Cli.Commands.Incomestatement ,module Hledger.Cli.Commands.Incomestatement
@ -67,6 +68,7 @@ import Hledger.Cli.Commands.Cashflow
import Hledger.Cli.Commands.Checkdates import Hledger.Cli.Commands.Checkdates
import Hledger.Cli.Commands.Checkdupes import Hledger.Cli.Commands.Checkdupes
import Hledger.Cli.Commands.Close import Hledger.Cli.Commands.Close
import Hledger.Cli.Commands.Commodities
import Hledger.Cli.Commands.Files import Hledger.Cli.Commands.Files
import Hledger.Cli.Commands.Help import Hledger.Cli.Commands.Help
import Hledger.Cli.Commands.Import import Hledger.Cli.Commands.Import
@ -96,6 +98,7 @@ builtinCommands = [
,(checkdatesmode , checkdates) ,(checkdatesmode , checkdates)
,(checkdupesmode , checkdupes) ,(checkdupesmode , checkdupes)
,(closemode , close) ,(closemode , close)
,(commoditiesmode , commodities)
,(helpmode , help') ,(helpmode , help')
,(importmode , importcmd) ,(importmode , importcmd)
,(filesmode , files) ,(filesmode , files)
@ -164,6 +167,7 @@ commandsList = unlines [
," accounts (a) show account names" ," accounts (a) show account names"
," activity show postings-per-interval bar charts" ," activity show postings-per-interval bar charts"
," balance (b, bal) show balance changes/end balances/budgets in accounts" ," balance (b, bal) show balance changes/end balances/budgets in accounts"
," commodities show commodity/currency symbols"
," files show input file paths" ," files show input file paths"
," prices show market price records" ," prices show market price records"
," print (p, txns) show transactions (journal entries)" ," 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 -- see: https://github.com/sol/hpack
-- --
-- hash: 23816762c7f1abc912788cda07079f28217cdf0638286735e84cfa4f5a24ca2e -- hash: 837fc1f3539c3f3c9f0eb1cbde0b6b361836e7f8c2a8c7cefaaa7f626f17658e
name: hledger name: hledger
version: 1.13.99 version: 1.13.99
@ -119,6 +119,7 @@ library
Hledger.Cli.Commands.Checkdates Hledger.Cli.Commands.Checkdates
Hledger.Cli.Commands.Checkdupes Hledger.Cli.Commands.Checkdupes
Hledger.Cli.Commands.Close Hledger.Cli.Commands.Close
Hledger.Cli.Commands.Commodities
Hledger.Cli.Commands.Help Hledger.Cli.Commands.Help
Hledger.Cli.Commands.Files Hledger.Cli.Commands.Files
Hledger.Cli.Commands.Import Hledger.Cli.Commands.Import

View File

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