ngx-export-distribution 0.6.0.0 → 0.6.0.1
raw patch · 4 files changed
+30/−20 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Changelog.md +6/−1
- NgxExport/Distribution.hs +8/−0
- ngx-export-distribution.cabal +1/−1
- nhm-tool.hs +15/−18
Changelog.md view
@@ -1,9 +1,14 @@+### 0.6.0.1++- *nhm-tool*: refactor parsing of *ldd* output, previously it could fail in rare+ cases when there were any not found libraries in the list.+ ### 0.6.0.0 - *nhm-tool*: add command *plan* to print the build plan or its derivatives. Command *deps* is now a synonym for command *plan deps*. - *nhm-tool*: generate more secure *Makefile* with variables surrounded by- commas in shell parts.+ double quotes in shell parts. ### 0.5.6.0
NgxExport/Distribution.hs view
@@ -320,6 +320,14 @@ -- In this case, no changes in /hie.yaml/ are required. But it makes sense to -- add the new source files into variable /SRC/ in /Makefile/ to let /make/ -- track them too.+--+-- To load the Haskell source file in the Haskell REPL, create the GHC package+-- environment by running /make/ or /make env/ and then run+--+-- > $ ghci -fobject-code project_name.hs+--+-- Option /-fobject-code/ is required for export declarations of handlers like+-- /incCnt/ which involve using foreign function interface. -- $drawbacks --
ngx-export-distribution.cabal view
@@ -1,5 +1,5 @@ name: ngx-export-distribution-version: 0.6.0.0+version: 0.6.0.1 synopsis: Build custom libraries for Nginx Haskell module description: Build custom libraries for <https://github.com/lyokha/nginx-haskell-module Nginx Haskell module>.
nhm-tool.hs view
@@ -393,31 +393,28 @@ where colon = ':' parseLddOutput :: String -> Either ParseError [LddRec]-parseLddOutput = flip parse "ldd" $ many $- spaces *>- (try (toLddRec <$>- manyTill anyChar' sep <*>- ((Just .) . (:) <$> char '/' <*> right- <|> Nothing <$ string "not found"- )- )- <|> try ((`LibOther` Nothing) <$> right)- <|> (`LibOther` Nothing) <$> manyTill anyChar' (sep *> addr *> newline)- )- where toLddRec lib | "libHS" `isPrefixOf` lib = LibHS lib+parseLddOutput = flip parse "ldd" $ manyLines $+ try (toLddRec <$>+ anyCharsTill arrow <*>+ ((Just .) . (:) <$> char '/' <*> right+ <|> Nothing <$ string "not found"+ )+ )+ <|> (`LibOther` Nothing) <$> (try right <|> anyCharsTill (arrow *> addr))+ where manyLines = many . (spaces *>) . (<* newline)+ toLddRec lib | "libHS" `isPrefixOf` lib = LibHS lib | "libffi.so" `isPrefixOf` lib = LibFFI lib | otherwise = LibOther lib- right = manyTill anyChar' $ spaces1 *> addr *> newline+ anyCharsTill = manyTill $ satisfy (/= '\n')+ right = anyCharsTill $ spaces1 *> addr addr = string "(0x" *> many1 hexDigit *> char ')'- anyChar' = satisfy (/= '\n')- sep = spaces1 *> string "=>" *> spaces1+ arrow = spaces1 *> string "=>" *> spaces1 spaces1 = skipMany1 space cmdPlan :: PlanData -> IO () cmdPlan PlanData {..} = do- let buildDir = if null planDataBuilddir- then ProjectRelativeToDir "."- else InBuildDir planDataBuilddir+ let buildDir | null planDataBuilddir = ProjectRelativeToDir "."+ | otherwise = InBuildDir planDataBuilddir path <- findPlanJson buildDir case planDataQuery of Nothing ->