@@ -13,6 +13,8 @@
1313--
1414-----------------------------------------------------------------------------
1515
16+{-# LANGUAGE TupleSections #-}
17+
1618module Main where
1719
1820import Control.Monad (unless)
@@ -24,6 +26,7 @@ import Data.Version (showVersion)
2426import Options.Applicative
2527import System.Directory (createDirectoryIfMissing)
2628import System.FilePath ((</>))
29+import System.FilePath.Glob (glob)
2730import System.Exit (exitFailure, exitSuccess)
2831import System.IO (hPutStr, stderr)
2932
@@ -50,13 +53,14 @@ instance Ord SuperMap where
5053runModuleName :: P.ModuleName -> String
5154runModuleName (P.ModuleName pns) = intercalate "_" (P.runProperName `map` pns)
5255
53−readInput :: FilePath -> IO (Either P.MultipleErrors [P.Module])
54−readInput filename = do
55− content <- readFile filename
56− return $ map snd <$> P.parseModulesFromFiles id [(filename, content)]
56+readInput :: [FilePath] -> IO (Either P.MultipleErrors [P.Module])
57+readInput paths = do
58+ content <- mapM (\path -> (path, ) <$> readFile path) paths
59+ return $ map snd <$> P.parseModulesFromFiles id content
5760
5861compile :: HierarchyOptions -> IO ()
59−compile (HierarchyOptions input mOutput) = do
62+compile (HierarchyOptions inputGlob mOutput) = do
63+ input <- glob inputGlob
6064 modules <- readInput input
6165 case modules of
6266 Left errs -> hPutStr stderr (P.prettyPrintMultipleErrors False errs) >> exitFailure