diff --git a/hledger/Hledger/Cli/Commands.hs b/hledger/Hledger/Cli/Commands.hs index 46f4f8190..bb01fbc7e 100644 --- a/hledger/Hledger/Cli/Commands.hs +++ b/hledger/Hledger/Cli/Commands.hs @@ -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)" diff --git a/hledger/Hledger/Cli/Commands/Commodities.hs b/hledger/Hledger/Cli/Commands/Commodities.hs new file mode 100644 index 000000000..41eee921b --- /dev/null +++ b/hledger/Hledger/Cli/Commands/Commodities.hs @@ -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 diff --git a/hledger/Hledger/Cli/Commands/Commodities.md b/hledger/Hledger/Cli/Commands/Commodities.md new file mode 100644 index 000000000..d7d827095 --- /dev/null +++ b/hledger/Hledger/Cli/Commands/Commodities.md @@ -0,0 +1,4 @@ +commodities\ +List all commodity/currency symbols used or declared in the journal. + +_FLAGS_ diff --git a/hledger/Hledger/Cli/Commands/Commodities.txt b/hledger/Hledger/Cli/Commands/Commodities.txt new file mode 100644 index 000000000..e9c627cd9 --- /dev/null +++ b/hledger/Hledger/Cli/Commands/Commodities.txt @@ -0,0 +1,4 @@ +commodities +List all commodity/currency symbols used or declared in the journal. + +_FLAGS_ diff --git a/hledger/hledger.cabal b/hledger/hledger.cabal index 7ed9e808a..4b4e55de7 100644 --- a/hledger/hledger.cabal +++ b/hledger/hledger.cabal @@ -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 diff --git a/hledger/package.yaml b/hledger/package.yaml index 8c3db5df9..96c839b61 100644 --- a/hledger/package.yaml +++ b/hledger/package.yaml @@ -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