scripts: uniquify

This commit is contained in:
Simon Michael 2011-08-19 18:30:21 +00:00
parent 559d7ba2c9
commit bc8411219b

21
examples/uniquify.hs Normal file
View File

@ -0,0 +1,21 @@
#!/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