From 2f6b82122f508ae1384425f78290772beb7738c8 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sat, 17 Jul 2010 00:45:12 +0000 Subject: [PATCH] tweak journal file auto-creation, add tests --- hledger-lib/Hledger/Read.hs | 6 +++--- tests/no-such-file.test | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 tests/no-such-file.test diff --git a/hledger-lib/Hledger/Read.hs b/hledger-lib/Hledger/Read.hs index 5d0111d23..d7ad30596 100644 --- a/hledger-lib/Hledger/Read.hs +++ b/hledger-lib/Hledger/Read.hs @@ -96,15 +96,15 @@ ensureJournalFile :: FilePath -> IO () ensureJournalFile f = do exists <- doesFileExist f when (not exists) $ do - printf "No journal file at %s, creating...\n" f - printf "Edit this file or use hledger add or hledger web to add transactions.\n" + hPrintf stderr "No journal file \"%s\", creating it.\n" f + hPrintf stderr "Edit this file or use \"hledger add\" or \"hledger web\" to add transactions.\n" emptyJournal >>= writeFile f -- | Give the content for a new auto-created journal file. emptyJournal :: IO String emptyJournal = do d <- getCurrentDay - return $ printf "; journal created by hledger on %s\n; see http://hledger.org/MANUAL.html#file-format\n\n" (show d) + return $ printf "; journal created %s; see http://hledger.org/MANUAL.html#journal-file\n\n" (show d) -- | Read a Journal from this string, using the specified data format or -- trying all known formats, or give an error string. diff --git a/tests/no-such-file.test b/tests/no-such-file.test new file mode 100644 index 000000000..876142187 --- /dev/null +++ b/tests/no-such-file.test @@ -0,0 +1,10 @@ +# commands should generally autocreate an empty journal when missing, see also add*.test +# $$ used for safe concurrent test running, may be a bash-ism +# +rm -f $$; bin/hledger register -f $$; rm -f $$ +>>> +>>>2 /No journal file.*creating it/ +# +rm -f $$; bin/hledger balance --no-total -f $$; rm -f $$ +>>> +>>>2 /No journal file.*creating it/