packages feed

hgettext 0.1.9 → 0.1.10

raw patch · 2 files changed

+22/−17 lines, 2 filesdep +haskell-src-extsdep −haskell-srcPVP ok

version bump matches the API change (PVP)

Dependencies added: haskell-src-exts

Dependencies removed: haskell-src

API changes (from Hackage documentation)

Files

hgettext.cabal view
@@ -1,5 +1,5 @@ Name:                   hgettext-Version:                0.1.9+Version:                0.1.10 Cabal-Version:          >= 1.6  License:                BSD3@@ -25,5 +25,6 @@         Main-Is:                hgettext.hs         Extensions:             TemplateHaskell         Hs-Source-Dirs:         src        -        Build-Depends:          base>=3.0.3.0, uniplate, haskell-src+        Build-Depends:          base>=3.0.3.0, uniplate, haskell-src-exts+        Other-Modules:          Paths_hgettext 
src/hgettext.hs view
@@ -1,6 +1,5 @@ -import Language.Haskell.Parser-import Language.Haskell.Syntax+import qualified Language.Haskell.Exts as H   import System.Environment import System.Console.GetOpt@@ -13,9 +12,13 @@ import Data.Char import System.FilePath +import Paths_hgettext (version)+import Data.Version (showVersion)+ data Options = Options {       outputFile :: String,-      keyword :: String+      keyword :: String,+      printVersion :: Bool     } deriving Show  options :: [OptDescr (Options->Options)]@@ -29,11 +32,14 @@             "use NAME.po instead of messages.po",      Option ['k'] ["keyword"]              (ReqArg (\d opts -> opts {keyword = d}) "WORD")-            "function name, in which wrapped searched words"+            "function name, in which wrapped searched words",+     Option [] ["version"]+            (NoArg (\opts -> opts {printVersion = True}))+            "print version of hgettexts"     ]  -defaultOptions = Options "messages.po" "__"+defaultOptions = Options "messages.po" "__" False  parseArgs :: [String] -> IO (Options, [String]) parseArgs args = @@ -43,8 +49,8 @@     where header = "Usage: hgettext [OPTION] [INPUTFILE] ..."  -toTranslate :: String -> ParseResult HsModule -> [(Int, String)]-toTranslate f (ParseOk z) = nub [ (0, s) | HsApp (HsVar (UnQual (HsIdent x))) (HsLit (HsString s)) <- universeBi z, x == f]+toTranslate :: String -> H.ParseResult H.Module -> [(Int, String)]+toTranslate f (H.ParseOk z) = nub [ (0, s) | H.App (H.Var (H.UnQual (H.Ident x))) (H.Lit (H.String s)) <- universeBi z, x == f] toTranslate _ _ = []  -- Create list of messages from a single file@@ -77,16 +83,14 @@                                ""]  process :: Options -> [String] -> IO ()+process Options{printVersion = True} _ = +    putStrLn $ "hgettext, version " ++ (showVersion version)+ process opts fl = do   t <- mapM read' fl-  writeFile (outputFile opts) $ writePOTFile $ map (\(n,c) -> formatMessages n $ toTranslate (keyword opts) $ parseModule c) t-    where read' "-" = getContents >>= \c -> return ("-", c)-          read' s = do -                    c <- readFile s-                    -- test for literate haskell file-                    if map toLower (takeExtension s) == ".lhs" -                       then return (s, either id (\_ -> "") (unlit s c))-                       else return (s, c)+  writeFile (outputFile opts) $ writePOTFile $ map (\(n,c) -> formatMessages n $ toTranslate (keyword opts) c) t+    where read' "-" = getContents >>= \c -> return ("-", H.parseFileContents c)+          read' f = H.parseFile f >>= \m -> return (f, m)  main =      getArgs >>= parseArgs >>= uncurry process