import Audit
import Audit.Options
import Audit.Panic
import Data.List
import System.Directory
import System.FilePath
locateCabalFiles :: Opts -> IO [FilePath]
locateCabalFiles (Opts cf) = case cf of Nothing -> guess
Just f -> return [f]
where guess = do cont <- getDirectoryContents "."
return $ filter (\f -> takeExtension f == ".cabal") cont
main :: IO ()
main = do opts <- execParser fullOpts
file <- locateCabalFiles opts
case file of [f] -> audit f
[] -> panic "No .cabal file found! Please specify one using -f FILE"
xs -> panic $ "Multiple cabal files found: " ++ intercalate ", " xs ++ ". Please specify one using -f FILE"