Fixes for import Handler indentation

This commit is contained in:
Michael Snoyman 2014-10-23 05:56:39 +03:00
parent 245041bc92
commit 21a7d47f3b

View File

@ -1,13 +1,13 @@
{-# LANGUAGE PatternGuards #-}
module AddHandler (addHandler) where module AddHandler (addHandler) where
import Prelude hiding (readFile) import Prelude hiding (readFile)
import System.IO (hFlush, stdout) import System.IO (hFlush, stdout)
import Data.Char (isLower, toLower, isSpace) import Data.Char (isLower, toLower, isSpace)
import Data.List (isPrefixOf, isSuffixOf) import Data.List (isPrefixOf, isSuffixOf, stripPrefix)
import qualified Data.Text as T import qualified Data.Text as T
import qualified Data.Text.IO as TIO import qualified Data.Text.IO as TIO
import System.Directory (getDirectoryContents, doesFileExist) import System.Directory (getDirectoryContents, doesFileExist)
import Control.Monad (when)
-- strict readFile -- strict readFile
readFile :: FilePath -> IO String readFile :: FilePath -> IO String
@ -62,18 +62,18 @@ fixApp :: String -> String -> String
fixApp name = fixApp name =
unlines . reverse . go . reverse . lines unlines . reverse . go . reverse . lines
where where
l = "import Handler." ++ name l spaces = "import " ++ spaces ++ "Handler." ++ name
go [] = [l] go [] = [l ""]
go (x:xs) go (x:xs)
| "import Handler." `isPrefixOf` x = l : x : xs | Just y <- stripPrefix "import " x, "Handler." `isPrefixOf` dropWhile (== ' ') y = l (takeWhile (== ' ') y) : x : xs
| otherwise = x : go xs | otherwise = x : go xs
fixCabal :: String -> String -> String fixCabal :: String -> String -> String
fixCabal name = fixCabal name =
unlines . reverse . go . reverse . lines unlines . reverse . go . reverse . lines
where where
l = "import Handler." ++ name l = " Handler." ++ name
go [] = [l] go [] = [l]
go (x:xs) go (x:xs)