packages feed

hpaco 0.16.2.0 → 0.18.0.0

raw patch · 2 files changed

+39/−13 lines, 2 filesdep ~hpaco-lib

Dependency ranges changed: hpaco-lib

Files

Main.hs view
@@ -2,12 +2,14 @@  import CommandArgs import Control.Monad (liftM, when)+import Control.Applicative ( (<|>) ) import Data.List import Data.Maybe import Prelude hiding (getContents) import System.FilePath import System.IO (withFile, IOMode (ReadMode, WriteMode), hPutStr, hPutStrLn, stdout) import System.IO.Strict+import Text.HPaco.Reader (Reader) import Text.HPaco.Readers.Paco import Text.HPaco.Optimizer import Text.HPaco.Writer as W@@ -22,7 +24,7 @@     argStruct <- parseArgs     let optimizationLevel = caOptimizationLevel argStruct     when (optimizationLevel > 1) $-        hPutStrLn stdout $ "Warning: Optimization level " ++ show optimizationLevel ++ " requested, using 1 instead"+        putStrLn $ "Warning: Optimization level " ++ show optimizationLevel ++ " requested, using 1 instead"     let filenames = caInputFiles argStruct      if null filenames@@ -47,7 +49,7 @@  process :: CommandArgs -> String -> FilePath -> String -> IO String process cmdargs templateName filename src = do-    let reader = readPaco filename+    let reader = getReader cmdargs filename filename         write = getWriter cmdargs templateName         rundata = caRunData cmdargs         pre = "{%with " ++ rundata ++ " %}\n"@@ -62,11 +64,11 @@     ast <- reader src'     case caOutputFormat cmdargs of         RunInterpreted -> runInterpreted (opt ast) cmdargs templateName >> return "\n"-        ListDependencies -> return . (getWriter cmdargs filename) $ ast+        ListDependencies -> return . getWriter cmdargs filename $ ast         otherwise -> return . write . opt $ ast     where runInterpreted ast cmdargs templateName =             let opts = Run.defaultOptions-                        { Run.roTemplateName = templateName `fromMaybe` (caTemplateName cmdargs)+                        { Run.roTemplateName = templateName `fromMaybe` caTemplateName cmdargs                         }             in Run.run opts ast @@ -77,6 +79,27 @@ outputFormatExtension RunInterpreted = "" outputFormatExtension ListDependencies = "dep" +getReader :: CommandArgs -> FilePath -> Reader+getReader cmdargs filePath =+    case getEffectiveInputLanguage cmdargs filePath of+        Paco -> readPaco+        Capo -> readCapo++getEffectiveInputLanguage :: CommandArgs -> FilePath -> InputLanguage+getEffectiveInputLanguage cmdargs filePath =+    let Just effectiveInputLanguage =+            caInputLanguage cmdargs+            <|> inputLanguageFromFilename filePath+            <|> Just Paco+    in effectiveInputLanguage+    +inputLanguageFromFilename :: FilePath -> Maybe InputLanguage+inputLanguageFromFilename fn =+    case takeExtension fn of+        ".paco" -> Just Paco+        ".capo" -> Just Capo+        otherwise -> Nothing+ getWriter :: CommandArgs -> String -> Writer getWriter cmdargs templateName =     go (caOutputFormat cmdargs) cmdargs templateName@@ -89,15 +112,18 @@             JsonLisp.writeJsonLisp         go OutputJavascript cmdargs templateName =             JS.writeJavascript $ JS.defJsWriterOptions-                                    { woPrettyPrint = caJsPretty cmdargs-                                    , woTemplateName = templateName `fromMaybe` (caTemplateName cmdargs)-                                    , woWrapMode = caJsWrapMode cmdargs+                                    { woPrettyPrint = caPretty cmdargs+                                    , woTemplateName = templateName `fromMaybe` caTemplateName cmdargs+                                    , woIncludePreamble = not . caNoPreamble $ cmdargs+                                    , woWrapMode = caWrapMode cmdargs+                                    , woSourcePositionComments = caSourcePositions cmdargs                                     }         go OutputPHP cmdargs templateName =             PHP.writePHP $ PHP.defPHPWriterOptions-                                { woPrettyPrint = caPhpPretty cmdargs-                                , woTemplateName = templateName `fromMaybe` (caTemplateName cmdargs)-                                , woIncludePreamble = not . caPhpNoPreamble $ cmdargs-                                , woWrapMode = caPhpWrapMode cmdargs+                                { woPrettyPrint = caPretty cmdargs+                                , woTemplateName = templateName `fromMaybe` caTemplateName cmdargs+                                , woIncludePreamble = not . caNoPreamble $ cmdargs+                                , woWrapMode = caWrapMode cmdargs                                 , woExposeAllFunctions = caPhpExposeAllFunctions cmdargs+                                , woSourcePositionComments = caSourcePositions cmdargs                                 }
hpaco.cabal view
@@ -1,5 +1,5 @@ name:                hpaco-version:             0.16.2.0+version:             0.18.0.0 synopsis:            Modular template compiler description:         CLI front-end to the hpaco-lib library. Compiles Paco                      template source code to JavaScript or PHP, or interprets@@ -20,7 +20,7 @@   build-depends:       base == 4.*                ,       filepath >= 1.1 && < 1.4                ,       cmdargs >= 0.9 && < 0.10-               , hpaco-lib == 0.16.2.0+               , hpaco-lib == 0.18.0.0                ,       strict == 0.3.*                -- ,       split >= 0.1 && < 0.2                -- ,       safe >= 0.3.3 && < 0.4