hpaco 0.11.0.6 → 0.16.1.0
raw patch · 2 files changed
+20/−4 lines, 2 filesdep ~hpaco-lib
Dependency ranges changed: hpaco-lib
Files
- Main.hs +18/−2
- hpaco.cabal +2/−2
Main.hs view
@@ -13,6 +13,8 @@ import qualified Text.HPaco.Writers.PHP as PHP import qualified Text.HPaco.Writers.Run as Run import qualified Text.HPaco.Writers.Javascript as JS+import qualified Text.HPaco.Writers.Dependencies as Deps+import qualified Text.HPaco.Writers.JsonLisp as JsonLisp import Text.HPaco.Writer (Writer) main = do@@ -27,12 +29,17 @@ processStdin cmdargs = getContents >>= process cmdargs "" "<STDIN>" >>= putStr +outputFilename :: CommandArgs -> FilePath -> FilePath+outputFilename cmdargs srcFilename = replaceExtension srcFilename (outputFormatExtension . caOutputFormat $ cmdargs)+ processFile :: CommandArgs -> FilePath -> IO () processFile cmdargs srcFilename = do src <- withFile srcFilename ReadMode hGetContents- let dstFilename = replaceExtension srcFilename (outputFormatExtension . caOutputFormat $ cmdargs)+ let dstFilename = outputFilename cmdargs srcFilename dst <- process cmdargs (takeBaseName srcFilename) srcFilename src- withFile dstFilename WriteMode $ \f -> hPutStr f dst+ if caToStdout cmdargs+ then putStr dst+ else withFile dstFilename WriteMode $ flip hPutStr dst process :: CommandArgs -> String -> FilePath -> String -> IO String process cmdargs templateName filename src = do@@ -50,6 +57,7 @@ ast <- reader src' case caOutputFormat cmdargs of RunInterpreted -> runInterpreted (opt ast) cmdargs templateName >> return "\n"+ ListDependencies -> return . (getWriter cmdargs filename) $ ast otherwise -> return . write . opt $ ast where runInterpreted ast cmdargs templateName = let opts = Run.defaultOptions@@ -60,12 +68,20 @@ outputFormatExtension :: OutputFormat -> String outputFormatExtension OutputPHP = "php" outputFormatExtension OutputJavascript = "js"+outputFormatExtension OutputJsonLisp = "jslisp"+outputFormatExtension RunInterpreted = ""+outputFormatExtension ListDependencies = "dep" getWriter :: CommandArgs -> String -> Writer getWriter cmdargs templateName = go (caOutputFormat cmdargs) cmdargs templateName where go :: OutputFormat -> CommandArgs -> String -> Writer+ go DumpRawAST _ _ = show+ go ListDependencies cmdargs templateName =+ Deps.writeDependencies templateName+ go OutputJsonLisp cmdargs templateName =+ JsonLisp.writeJsonLisp go OutputJavascript cmdargs templateName = JS.writeJavascript $ JS.defaultWriterOptions { JS.woPrettyPrint = caJsPretty cmdargs
hpaco.cabal view
@@ -1,5 +1,5 @@ name: hpaco-version: 0.11.0.6+version: 0.16.1.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.11.0.6+ , hpaco-lib == 0.16.1.0 , strict == 0.3.* -- , split >= 0.1 && < 0.2 -- , safe >= 0.3.3 && < 0.4