hi 0.0.2 → 0.0.3
raw patch · 4 files changed
+25/−16 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Distribution.Hi.Config: parseConfig :: String -> IO [Arg]
+ Distribution.Hi.Config: parseConfig :: String -> [Arg]
Files
- hi.cabal +1/−1
- src/Distribution/Hi/Config.hs +2/−2
- src/Distribution/Hi/Option.hs +21/−12
- src/Distribution/Hi/Version.hs +1/−1
hi.cabal view
@@ -1,5 +1,5 @@ name: hi-version: 0.0.2+version: 0.0.3 synopsis: Generate scaffold for cabal project license: BSD3 license-file: LICENSE
src/Distribution/Hi/Config.hs view
@@ -40,7 +40,7 @@ configFile :: Parser [(String, String)] configFile = catMaybes <$> many line <* eof -parseConfig :: String -> IO [Arg]+parseConfig :: String -> [Arg] parseConfig x = case parse configFile "ERROR" x of -- TODO Error message Left l -> error $ show l- Right xs -> return $ map (uncurry Val) xs+ Right xs -> map (uncurry Val) xs
src/Distribution/Hi/Option.hs view
@@ -7,16 +7,20 @@ ) where import Control.Applicative+import Control.Exception (IOException, catch) import Data.Time.Calendar (toGregorian) import Data.Time.Clock (getCurrentTime, utctDay) import Distribution.Hi.Config (parseConfig) import Distribution.Hi.Flag (extractInitFlags) import Distribution.Hi.Types+import Prelude hiding (catch) import System.Console.GetOpt import System.Directory (getHomeDirectory) import System.Environment (getArgs) import System.FilePath (joinPath)+import System.IO (hPutStr, stderr) + -- | Available options. options :: [OptDescr Arg] options =@@ -39,24 +43,30 @@ RunWithNoConfigurationFile -> runWithNoConfigurationFile _ -> error "Unexpected run mode" where- runWithNoConfigurationFile = getInitFlagsPure =<< getArgs+ runWithNoConfigurationFile = getInitFlags' =<< getArgs runWithConfigurationFile = do (xs,_) <- parseArgs <$> getArgs- ys <- addYear =<< parseConfig =<< readFile =<< getConfigFileName+ ys <- addYear <$> parseConfig =<< readFile' =<< getConfigFileName return $ extractInitFlags (ys ++ xs)+ readFile' f = catch (readFile f)+ (\e -> do let err = show (e :: IOException)+ hPutStr stderr ("Warning: Couldn't open " ++ f ++ ": " ++ err)+ return "") -getInitFlagsPure :: [String] -> IO InitFlags-getInitFlagsPure args = extractInitFlags <$> (addYear . fst . parseArgs $ args)+-- | Returns `InitFlags` from given args, attaching year if it's missing in+-- args+getInitFlags' :: [String] -> IO InitFlags+getInitFlags' args = extractInitFlags <$> (addYear . fst . parseArgs $ args) -- | Returns 'Mode'. getMode :: IO Mode getMode = do- args <- fst <$> parseArgs <$> getArgs- return $ if any id [True |Version <- args]- then ShowVersion- else if any id [True |NoConfigurationFile <- args]- then RunWithNoConfigurationFile- else Run+ go . fst . parseArgs <$> getArgs+ where+ go [] = Run+ go (Version:_) = ShowVersion+ go (NoConfigurationFile:_) = RunWithNoConfigurationFile+ go (_:xs) = go xs parseArgs :: [String] -> ([Arg], [String]) parseArgs argv =@@ -77,8 +87,7 @@ getConfigFileName :: IO FilePath getConfigFileName = do- args <- (fst . parseArgs) <$> getArgs- go args+ go =<< (fst . parseArgs) <$> getArgs where go [] = defaultConfigFilePath go ((Val "configFile" p):_) = return p
src/Distribution/Hi/Version.hs view
@@ -4,4 +4,4 @@ ) where version :: String-version = "0.0.2"+version = "0.0.3"