packages feed

file-modules-0.1.2.2: src/Main.hs

module Main where

import           Control.Concurrent.Async (mapConcurrently)
import           Control.Monad            (forM_)
import           Data.List.Utils          (uniq)
import           Development.FileModules
import           System.Environment       (getArgs)
import           System.Exit              (exitFailure)

main :: IO ()
main = do
    args <- getArgs
    case args of
      "--version":_ -> putStrLn "0.1.2.2"
      "--help":_ -> printUsage
      [] -> printUsage >> exitFailure
      ms -> do
        modules <- mapConcurrently fileModulesRecur ms
        forM_ (uniq (concat modules)) putStrLn
  where
    printUsage = putStrLn "Usage: file-modules <files...>"