cli: give literal tilde error also with -f

This commit is contained in:
Simon Michael 2011-09-21 23:10:44 +00:00
parent f5eecc34a3
commit 556e3c9246
2 changed files with 6 additions and 5 deletions

View File

@ -137,7 +137,6 @@ readJournal format s = journalFromPathAndString format "(string)" s
myJournalPath :: IO String myJournalPath :: IO String
myJournalPath = do myJournalPath = do
s <- envJournalPath s <- envJournalPath
errorIfContainsTilde s
if null s then defaultJournalPath else return s if null s then defaultJournalPath else return s
where where
envJournalPath = getEnv journalenvvar `catch` (\_ -> getEnv journalenvvar2 `catch` (\_ -> return "")) envJournalPath = getEnv journalenvvar `catch` (\_ -> getEnv journalenvvar2 `catch` (\_ -> return ""))
@ -145,8 +144,6 @@ myJournalPath = do
home <- getHomeDirectory `catch` (\_ -> return "") home <- getHomeDirectory `catch` (\_ -> return "")
return $ home </> journaldefaultfilename return $ home </> journaldefaultfilename
errorIfContainsTilde s = when ('~' `elem` s) $ error' "unsupported literal ~ found in environment variable, please adjust"
-- | Get the user's default timelog file path. -- | Get the user's default timelog file path.
myTimelogPath :: IO String myTimelogPath :: IO String
myTimelogPath = myTimelogPath =

View File

@ -423,11 +423,15 @@ defaultBalanceFormatString = [
, FormatField True Nothing Nothing Format.Account , FormatField True Nothing Nothing Format.Account
] ]
-- | Get the journal file path from options, an environment variable, or a default -- | Get the journal file path from options, an environment variable, or a default.
-- If the path contains a literal tilde raise an error to avoid confusion.
journalFilePathFromOpts :: CliOpts -> IO String journalFilePathFromOpts :: CliOpts -> IO String
journalFilePathFromOpts opts = do journalFilePathFromOpts opts = do
f <- myJournalPath f <- myJournalPath
return $ fromMaybe f $ file_ opts return $ errorIfContainsTilde $ fromMaybe f $ file_ opts
errorIfContainsTilde s |'~' `elem` s = error' "unsupported literal ~ found in environment variable, please adjust"
| otherwise = s
aliasesFromOpts :: CliOpts -> [(AccountName,AccountName)] aliasesFromOpts :: CliOpts -> [(AccountName,AccountName)]
aliasesFromOpts = map parseAlias . alias_ aliasesFromOpts = map parseAlias . alias_