module Main where import CabalScanner import Data.Aeson.Encode.Pretty import qualified Data.ByteString.Lazy.Char8 as L import System.Directory import System.Environment main :: IO () main = do (basePath:_) <- getArgs isDir <- doesDirectoryExist basePath out <- if isDir then do gpd <- getCabalPackage basePath packInfo <- performCabalPackageScan gpd -- TODO useful things here pure $ PackageUsedOutput packInfo else do scan <- dispatchFileScan basePath case scan of Left modInfo -> do case modInfo of -- (ModuleInfo (InPackageLibrary fp) analysis) -> _ -> return () pure $ ModuleUsedOutput modInfo Right packInfo -> do -- TODO useful things here pure $ PackageUsedOutput packInfo L.putStrLn $ encodePretty out