lib, app, web: use readJournalFileWithOpts instead of readJournalFile whenever possible
This commit is contained in:
parent
c7d86f3572
commit
37607beaea
4
dev.hs
4
dev.hs
@ -51,7 +51,7 @@ timeReadJournal msg s = timeit msg $ either error id <$> readJournal Nothing Not
|
|||||||
main = do
|
main = do
|
||||||
-- putStrLn $ regexReplaceCI "^aa" "xx" "aa:bb:cc:dd:ee"
|
-- putStrLn $ regexReplaceCI "^aa" "xx" "aa:bb:cc:dd:ee"
|
||||||
|
|
||||||
(_t0,_j) <- timeit ("read "++journal) $ either error id <$> readJournalFile Nothing Nothing True journal
|
(_t0,_j) <- timeit ("read "++journal) $ either error id <$> readJournalFileWithOpts def journal
|
||||||
return ()
|
return ()
|
||||||
-- printf "Total: %0.2fs\n" (sum [t0,t1,t2,t3,t4])
|
-- printf "Total: %0.2fs\n" (sum [t0,t1,t2,t3,t4])
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ main = do
|
|||||||
-- benchWithTimeit = do
|
-- benchWithTimeit = do
|
||||||
-- getCurrentDirectory >>= printf "Benchmarking hledger in %s with timeit\n"
|
-- getCurrentDirectory >>= printf "Benchmarking hledger in %s with timeit\n"
|
||||||
-- let opts = defcliopts{output_file_=Just outputfile}
|
-- let opts = defcliopts{output_file_=Just outputfile}
|
||||||
-- (t0,j) <- timeit ("read "++inputfile) $ either error id <$> readJournalFile Nothing Nothing True inputfile
|
-- (t0,j) <- timeit ("read "++inputfile) $ either error id <$> readJournalFileWithOpts def inputfile
|
||||||
-- (t1,_) <- timeit ("print") $ print' opts j
|
-- (t1,_) <- timeit ("print") $ print' opts j
|
||||||
-- (t2,_) <- timeit ("register") $ register opts j
|
-- (t2,_) <- timeit ("register") $ register opts j
|
||||||
-- (t3,_) <- timeit ("balance") $ balance opts j
|
-- (t3,_) <- timeit ("balance") $ balance opts j
|
||||||
|
|||||||
@ -91,7 +91,7 @@ main = do
|
|||||||
let
|
let
|
||||||
defd = "."
|
defd = "."
|
||||||
d = getArgWithDefault args defd (longOption "static-dir")
|
d = getArgWithDefault args defd (longOption "static-dir")
|
||||||
readJournalFile Nothing def f >>= either error' (serveApi h p d f)
|
readJournalFileWithOpts def f >>= either error' (serveApi h p d f)
|
||||||
|
|
||||||
serveApi :: String -> Int -> FilePath -> FilePath -> Journal -> IO ()
|
serveApi :: String -> Int -> FilePath -> FilePath -> Journal -> IO ()
|
||||||
serveApi h p d f j = do
|
serveApi h p d f j = do
|
||||||
|
|||||||
@ -15,6 +15,7 @@ module Hledger.Read (
|
|||||||
defaultJournal,
|
defaultJournal,
|
||||||
defaultJournalPath,
|
defaultJournalPath,
|
||||||
readJournalFilesWithOpts,
|
readJournalFilesWithOpts,
|
||||||
|
readJournalFileWithOpts,
|
||||||
readJournalFiles,
|
readJournalFiles,
|
||||||
readJournalFile,
|
readJournalFile,
|
||||||
requireJournalFileExists,
|
requireJournalFileExists,
|
||||||
@ -91,7 +92,7 @@ type PrefixedFilePath = FilePath
|
|||||||
|
|
||||||
-- | Read the default journal file specified by the environment, or raise an error.
|
-- | Read the default journal file specified by the environment, or raise an error.
|
||||||
defaultJournal :: IO Journal
|
defaultJournal :: IO Journal
|
||||||
defaultJournal = defaultJournalPath >>= readJournalFile Nothing def >>= either error' return
|
defaultJournal = defaultJournalPath >>= readJournalFileWithOpts def >>= either error' return
|
||||||
|
|
||||||
-- | Get the default journal file path specified by the environment.
|
-- | Get the default journal file path specified by the environment.
|
||||||
-- Like ledger, we look first for the LEDGER_FILE environment
|
-- Like ledger, we look first for the LEDGER_FILE environment
|
||||||
|
|||||||
@ -39,7 +39,7 @@ import Handler.SidebarR
|
|||||||
|
|
||||||
import Hledger.Web.WebOptions (WebOpts(..), defwebopts)
|
import Hledger.Web.WebOptions (WebOpts(..), defwebopts)
|
||||||
import Hledger.Data (Journal, nulljournal)
|
import Hledger.Data (Journal, nulljournal)
|
||||||
import Hledger.Read (readJournalFile)
|
import Hledger.Read (readJournalFileWithOpts)
|
||||||
import Hledger.Utils (error')
|
import Hledger.Utils (error')
|
||||||
import Hledger.Cli.CliOptions (defcliopts, journalFilePathFromOpts)
|
import Hledger.Cli.CliOptions (defcliopts, journalFilePathFromOpts)
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ makeFoundation conf opts = do
|
|||||||
getApplicationDev :: IO (Int, Application)
|
getApplicationDev :: IO (Int, Application)
|
||||||
getApplicationDev = do
|
getApplicationDev = do
|
||||||
f <- head `fmap` journalFilePathFromOpts defcliopts -- XXX head should be safe for now
|
f <- head `fmap` journalFilePathFromOpts defcliopts -- XXX head should be safe for now
|
||||||
j <- either error' id `fmap` readJournalFile Nothing def f
|
j <- either error' id `fmap` readJournalFileWithOpts def f
|
||||||
defaultDevelApp loader (makeApplication defwebopts j)
|
defaultDevelApp loader (makeApplication defwebopts j)
|
||||||
where
|
where
|
||||||
loader = Yesod.Default.Config.loadConfig (configSettings Development)
|
loader = Yesod.Default.Config.loadConfig (configSettings Development)
|
||||||
|
|||||||
@ -66,7 +66,7 @@ withJournalDo' opts@WebOpts {cliopts_ = cliopts} cmd = do
|
|||||||
. journalApplyAliases (aliasesFromOpts cliopts)
|
. journalApplyAliases (aliasesFromOpts cliopts)
|
||||||
<=< journalApplyValue (reportopts_ cliopts)
|
<=< journalApplyValue (reportopts_ cliopts)
|
||||||
<=< journalAddForecast cliopts
|
<=< journalAddForecast cliopts
|
||||||
readJournalFile Nothing def f >>= either error' fn
|
readJournalFileWithOpts def f >>= either error' fn
|
||||||
|
|
||||||
-- | The web command.
|
-- | The web command.
|
||||||
web :: WebOpts -> Journal -> IO ()
|
web :: WebOpts -> Journal -> IO ()
|
||||||
|
|||||||
@ -19,7 +19,7 @@ You can use the command line:
|
|||||||
or ghci:
|
or ghci:
|
||||||
|
|
||||||
> $ ghci hledger
|
> $ ghci hledger
|
||||||
> > j <- readJournalFile Nothing Nothing True "examples/sample.journal"
|
> > j <- readJournalFileWithOpts def "examples/sample.journal"
|
||||||
> > register [] ["income","expenses"] j
|
> > register [] ["income","expenses"] j
|
||||||
> 2008/01/01 income income:salary $-1 $-1
|
> 2008/01/01 income income:salary $-1 $-1
|
||||||
> 2008/06/01 gift income:gifts $-1 $-2
|
> 2008/06/01 gift income:gifts $-1 $-2
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
import Criterion.Main (defaultMainWith, defaultConfig, bench, nfIO)
|
import Criterion.Main (defaultMainWith, defaultConfig, bench, nfIO)
|
||||||
-- import QuickBench (defaultMain)
|
-- import QuickBench (defaultMain)
|
||||||
|
import Data.Default
|
||||||
import System.Directory (getCurrentDirectory)
|
import System.Directory (getCurrentDirectory)
|
||||||
import System.Environment (getArgs, withArgs)
|
import System.Environment (getArgs, withArgs)
|
||||||
import System.TimeIt (timeItT)
|
import System.TimeIt (timeItT)
|
||||||
@ -33,7 +34,7 @@ main = do
|
|||||||
benchWithTimeit = do
|
benchWithTimeit = do
|
||||||
getCurrentDirectory >>= printf "Benchmarking hledger in %s with timeit\n"
|
getCurrentDirectory >>= printf "Benchmarking hledger in %s with timeit\n"
|
||||||
let opts = defcliopts{output_file_=Just outputfile}
|
let opts = defcliopts{output_file_=Just outputfile}
|
||||||
(t0,j) <- timeit ("read "++inputfile) $ either error id <$> readJournalFile Nothing Nothing True inputfile
|
(t0,j) <- timeit ("read "++inputfile) $ either error id <$> readJournalFileWithOpts def inputfile
|
||||||
(t1,_) <- timeit ("print") $ print' opts j
|
(t1,_) <- timeit ("print") $ print' opts j
|
||||||
(t2,_) <- timeit ("register") $ register opts j
|
(t2,_) <- timeit ("register") $ register opts j
|
||||||
(t3,_) <- timeit ("balance") $ balance opts j
|
(t3,_) <- timeit ("balance") $ balance opts j
|
||||||
@ -49,9 +50,9 @@ timeit name action = do
|
|||||||
benchWithCriterion = do
|
benchWithCriterion = do
|
||||||
getCurrentDirectory >>= printf "Benchmarking hledger in %s with criterion\n"
|
getCurrentDirectory >>= printf "Benchmarking hledger in %s with criterion\n"
|
||||||
let opts = defcliopts{output_file_=Just "/dev/null"}
|
let opts = defcliopts{output_file_=Just "/dev/null"}
|
||||||
j <- either error id <$> readJournalFile Nothing Nothing True inputfile
|
j <- either error id <$> readJournalFileWithOpts def inputfile
|
||||||
Criterion.Main.defaultMainWith defaultConfig $ [
|
Criterion.Main.defaultMainWith defaultConfig $ [
|
||||||
bench ("read "++inputfile) $ nfIO $ (either error const <$> readJournalFile Nothing Nothing True inputfile),
|
bench ("read "++inputfile) $ nfIO $ (either error const <$> readJournalFileWithOpts def inputfile),
|
||||||
bench ("print") $ nfIO $ print' opts j,
|
bench ("print") $ nfIO $ print' opts j,
|
||||||
bench ("register") $ nfIO $ register opts j,
|
bench ("register") $ nfIO $ register opts j,
|
||||||
bench ("balance") $ nfIO $ balance opts j,
|
bench ("balance") $ nfIO $ balance opts j,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user