summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorAkos Marton <makos999@protonmail.ch>2020-02-15 12:24:11 +0100
committerGitHub <noreply@github.com>2020-02-15 12:24:11 +0100
commitab85690eb35dec46c8eb80a930337249f34b9f80 (patch)
tree59a73cef8a09bcd28269a58a50642bd8ca533382 /src
parent41dcda2a34b5f12f3fa91480bfe2aaeb4afa90e5 (diff)
downloadstylish-haskell-ab85690eb35dec46c8eb80a930337249f34b9f80.tar.gz
Add -r flag to recursively find Haskell files
Diffstat (limited to 'src')
-rw-r--r--src/Main.hs30
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.
--------------------------------------------------------------------------------