From e67c63dc54e41ebeb1a96651a19a64e84a1c9763 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Thu, 25 Aug 2011 23:50:34 +0000 Subject: [PATCH] don't fail if PATH is not defined --- hledger/Hledger/Cli/Options.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hledger/Hledger/Cli/Options.hs b/hledger/Hledger/Cli/Options.hs index 40c881c82..d2d75c658 100644 --- a/hledger/Hledger/Cli/Options.hs +++ b/hledger/Hledger/Cli/Options.hs @@ -341,12 +341,13 @@ getHledgerAddonCommands = map (drop (length progname + 1)) `fmap` getHledgerProg -- user's PATH, or the empty list if there is any problem. getHledgerProgramsInPath :: IO [String] getHledgerProgramsInPath = do - pathdirs <- splitOn ":" `fmap` getEnv "PATH" + pathdirs <- splitOn ":" `fmap` getEnvSafe "PATH" pathexes <- concat `fmap` mapM getDirectoryContentsSafe pathdirs return $ nub $ sort $ filter (isRight . parsewith hledgerprog) pathexes where hledgerprog = string progname >> char '-' >> many1 (letter <|> char '-') >> eof +getEnvSafe v = getEnv v `catch` (\_ -> return "") getDirectoryContentsSafe d = getDirectoryContents d `catch` (\_ -> return []) -- | Convert possibly encoded option values to regular unicode strings.