update example scripts in extra and rename them so they work as add-ons
This commit is contained in:
parent
61ff8b852a
commit
d1de9ba927
@ -1,7 +0,0 @@
|
||||
#!/usr/bin/env runhaskell
|
||||
-- list the default journal's chart of accounts in --flat style
|
||||
import Hledger
|
||||
main = do
|
||||
j <- myJournal
|
||||
let l = journalToLedger nullfilterspec{empty=True} j
|
||||
mapM_ putStrLn (accountnames l)
|
||||
@ -1,23 +0,0 @@
|
||||
#!/usr/bin/env runhaskell
|
||||
{-
|
||||
Print an entry posting the total balance of the specified account and
|
||||
subaccounts, or all accounts, from the default journal. Like ledger's
|
||||
equity command. Useful when starting a new journal or closing the books.
|
||||
|
||||
Usage: equity.hs [ACCTPAT]
|
||||
-}
|
||||
import Hledger
|
||||
import Hledger.Cli
|
||||
import System.Environment
|
||||
|
||||
main = do
|
||||
j <- myJournal
|
||||
d <- getCurrentDay
|
||||
args <- getArgs
|
||||
let acctpat = head $ args ++ [""]
|
||||
(acctbals,_) = balanceReport [Flat] (optsToFilterSpec [] [acctpat] d) j
|
||||
txn = nulltransaction{
|
||||
tdate=d,
|
||||
tpostings=[nullposting{paccount=a,pamount=b} | (a,_,_,b) <- acctbals]
|
||||
++ [nullposting{paccount="equity:opening balances",pamount=missingamt}]}
|
||||
putStr $ show txn
|
||||
9
extra/hledger-accountnames.hs
Executable file
9
extra/hledger-accountnames.hs
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env runhaskell
|
||||
-- Show all account names used in the default journal.
|
||||
|
||||
import Hledger
|
||||
|
||||
main = do
|
||||
j <- defaultJournal
|
||||
let l = ledgerFromJournal Any j
|
||||
mapM_ putStrLn $ ledgerAccountNames l
|
||||
30
extra/hledger-equity.hs
Executable file
30
extra/hledger-equity.hs
Executable file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env runhaskell
|
||||
{-
|
||||
|
||||
Like ledger's equity command, print a journal entry posting the total
|
||||
balance of all accounts (or the specified account and its subaccounts)
|
||||
in the default journal.
|
||||
|
||||
An entry like this is useful in the transition to a new journal file,
|
||||
to zero out asset/liability balances in the old file and initialise
|
||||
them in the new one. This way you get correct balances when reporting
|
||||
on either file, and when including both files at once.
|
||||
|
||||
Usage: hledger-equity [ACCTPAT]
|
||||
-}
|
||||
import Hledger
|
||||
import Hledger.Cli
|
||||
import System.Environment
|
||||
|
||||
main = do
|
||||
j <- defaultJournal
|
||||
d <- getCurrentDay
|
||||
args <- getArgs
|
||||
let query = Or $ map Acct args
|
||||
ropts = defreportopts{flat_=True}
|
||||
(acctbals,_) = accountsReport ropts query j
|
||||
balancingamt = negate $ sum $ map (\(_,_,_,b) -> b) acctbals
|
||||
ps = [posting{paccount=a, pamount=b} | (a,_,_,b) <- acctbals]
|
||||
++ [posting{paccount="equity:opening balances", pamount=balancingamt}]
|
||||
txn = nulltransaction{tdate=d, tpostings=ps}
|
||||
putStr $ showTransactionUnelided txn
|
||||
24
extra/hledger-print-unique.hs
Executable file
24
extra/hledger-print-unique.hs
Executable file
@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env runhaskell
|
||||
{-|
|
||||
hledger-print-unique [-f JOURNALFILE | -f-]
|
||||
|
||||
Print only journal entries which are unique by description (or
|
||||
something else). Reads the default or specified journal, or stdin.
|
||||
|
||||
|-}
|
||||
|
||||
import Data.List
|
||||
import Data.Ord
|
||||
import Hledger
|
||||
import Hledger.Cli
|
||||
import Hledger.Cli.Print (print')
|
||||
|
||||
main = do
|
||||
opts <- getHledgerCliOpts []
|
||||
withJournalDo opts $
|
||||
\opts j@Journal{jtxns=ts} -> print' opts j{jtxns=uniquify ts}
|
||||
where
|
||||
uniquify = nubBy (\t1 t2 -> thingToCompare t1 == thingToCompare t2) . sortBy (comparing thingToCompare)
|
||||
|
||||
thingToCompare = tdescription
|
||||
-- thingToCompare = tdate
|
||||
@ -1,21 +0,0 @@
|
||||
#!/usr/bin/env runhaskell
|
||||
{-|
|
||||
Uniquify journal entries based on some id in the description. Reads the
|
||||
default or specified journal, or stdin.
|
||||
|
||||
Usage: uniquify.hs [-f JOURNALFILE | -f-]
|
||||
|-}
|
||||
|
||||
import Data.List
|
||||
import Hledger
|
||||
import Hledger.Cli
|
||||
|
||||
main = do
|
||||
opts <- getHledgerOpts
|
||||
withJournalDo opts uniquifyAndPrint
|
||||
|
||||
uniquifyAndPrint :: CliOpts -> Journal -> IO ()
|
||||
uniquifyAndPrint opts j@Journal{jtxns=ts} = print' opts j{jtxns=uniquify ts}
|
||||
where
|
||||
uniquify = nubBy (\t1 t2 -> extractId (tdescription t1) == extractId (tdescription t2))
|
||||
extractId desc = desc -- extract some part that's supposed to be unique
|
||||
Loading…
Reference in New Issue
Block a user