diff options
author | Akos Marton <makos999@protonmail.ch> | 2020-02-15 12:24:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-15 12:24:11 +0100 |
commit | ab85690eb35dec46c8eb80a930337249f34b9f80 (patch) | |
tree | 59a73cef8a09bcd28269a58a50642bd8ca533382 /src | |
parent | 41dcda2a34b5f12f3fa91480bfe2aaeb4afa90e5 (diff) | |
download | stylish-haskell-ab85690eb35dec46c8eb80a930337249f34b9f80.tar.gz |
Add -r flag to recursively find Haskell files
Diffstat (limited to 'src')
-rw-r--r-- | src/Main.hs | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/Main.hs b/src/Main.hs index e71c795..b1ca2d5 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -21,13 +21,14 @@ import Language.Haskell.Stylish -------------------------------------------------------------------------------- data StylishArgs = StylishArgs - { saVersion :: Bool - , saConfig :: Maybe FilePath - , saVerbose :: Bool - , saDefaults :: Bool - , saInPlace :: Bool - , saNoUtf8 :: Bool - , saFiles :: [FilePath] + { saVersion :: Bool + , saConfig :: Maybe FilePath + , saRecursive :: Bool + , saVerbose :: Bool + , saDefaults :: Bool + , saInPlace :: Bool + , saNoUtf8 :: Bool + , saFiles :: [FilePath] } deriving (Show) @@ -45,6 +46,11 @@ parseStylishArgs = StylishArgs OA.short 'c' <> OA.hidden) <*> OA.switch ( + OA.help "Recursive file search" <> + OA.long "recursive" <> + OA.short 'r' <> + OA.hidden) + <*> OA.switch ( OA.help "Run in verbose mode" <> OA.long "verbose" <> OA.short 'v' <> @@ -99,14 +105,20 @@ stylishHaskell sa = do else do conf <- loadConfig verbose' (saConfig sa) + filesR <- case (saRecursive sa) of + True -> findHaskellFiles (saVerbose sa) (saFiles sa) + _ -> return $ saFiles sa let steps = configSteps conf forM_ steps $ \s -> verbose' $ "Enabled " ++ stepName s ++ " step" verbose' $ "Extra language extensions: " ++ show (configLanguageExtensions conf) - mapM_ (file sa conf) files' + mapM_ (file sa conf) $ files' filesR where verbose' = makeVerbose (saVerbose sa) - files' = if null (saFiles sa) then [Nothing] else map Just (saFiles sa) + files' x = case (saRecursive sa, null x) of + (True,True) -> [] -- No file to format and recursive enabled. + (_,True) -> [Nothing] -- Involving IO.stdin. + (_,False) -> map Just x -- Process available files. -------------------------------------------------------------------------------- |