packages feed

cabal-audit-0.1.0.0: src/Main.hs

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"