packages feed

ngx-export-distribution 0.5.4.3 → 0.5.5.0

raw patch · 4 files changed

+58/−47 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

Changelog.md view
@@ -1,3 +1,11 @@+### 0.5.5.0++- Refactor function *buildSharedLib* in module *NgxExport.Distribution*.+- Adjust verbosity levels in *nhm-tool* based on levels passed in *cabal* or+  *Setup.hs* (*-v0* → nothing, *-v1* or nothing → *-v*, other →+  *-vv*).+- *nhm-tool*: use default directory *.hslibs* if *distDataDir* was passed empty.+ ### 0.5.4.3  - *nhm-tool*: fix bios shell script in generated *hie.yaml* for environments
NgxExport/Distribution.hs view
@@ -58,7 +58,6 @@ import Distribution.Pretty import System.Directory import System.FilePath-import Control.Arrow import Control.Monad import Data.Maybe @@ -356,26 +355,28 @@                -> BuildFlags                        -- ^ Build flags                -> IO FilePath buildSharedLib verbosity desc lbi flags = do-    let configGhcOptions =-            maybe [] (map ("ghc", )) $-                lookup GHC $ perCompilerFlavorToList $-                    options $ libBuildInfo $ fromJust $ library desc+    let configGhcOptions = fromMaybe [] $+            lookup GHC $ perCompilerFlavorToList $+                options $ libBuildInfo $ fromJust $ library desc         lib = fst $-            foldl (\a@(r, _) (prog, v) ->-                if prog /= "ghc" || isJust r-                    then a-                    else foldl (\a'@(r', ready) v' ->-                                    if isJust r'-                                        then a'-                                        else if v' == "-o"-                                                 then (Nothing, True)-                                                 else if ready-                                                          then (Just v', False)-                                                          else (Nothing, False)-                               ) a v-                  ) (Nothing, False) $-                      buildProgramArgs flags ++-                          map (second pure) configGhcOptions+            foldl (\a@(r, _) v ->+                      case r of+                          Nothing ->+                              foldl (\a'@(r', ready) v' ->+                                        case r' of+                                            Nothing | v' == "-o" -> libReady+                                                    | ready -> libFound v'+                                                    | otherwise -> libNotFound+                                            _ -> a'+                                    ) libNotFound v+                          _ -> a+                  ) libNotFound [concatMap snd $ filter (("ghc" ==) . fst) $+                                     buildProgramArgs flags+                                ,configGhcOptions+                                ]+        libNotFound = (Nothing, False)+        libReady = (Nothing, True)+        libFound = (, False) . Just         (lib', extraGhcOptions) =             maybe (let name = unPackageName $ pkgName $ package desc                        nameSo = name <.> "so"@@ -390,11 +391,12 @@         _ -> return ()     ghcP <- fst <$> requireProgram verbosity ghcProgram (withPrograms lbi)     let libGhcOptions = ["-dynamic", "-shared", "-fPIC"]-        libGhcOptions' = if programVersion ghcP >= Just (mkVersion [9, 0, 1])-                             then "-flink-rts" : libGhcOptions-                             else libGhcOptions-        ghcR = programInvocation ghcP $-            libGhcOptions' ++ map snd configGhcOptions ++ extraGhcOptions+        linkRtsOption+            | programVersion ghcP >= Just (mkVersion [9, 0, 1]) =+                ["-flink-rts"]+            | otherwise = []+        ghcR = programInvocation ghcP $ libGhcOptions +++            linkRtsOption ++ configGhcOptions ++ extraGhcOptions     runProgramInvocation verbosity ghcR     return lib' @@ -420,15 +422,18 @@                              -> LocalBuildInfo      -- ^ Local build info                              -> IO () patchAndCollectDependentLibs verbosity lib desc lbi = do-    let dir = maybe "unspecified-abi" fromPathTemplate $ lookup AbiVar $+    let verbosityArg v | v == silent = []+                       | v == normal = ["-v"]+                       | otherwise = ["-vv"]+        dir = maybe "unspecified-abi" fromPathTemplate $ lookup AbiVar $             abiTemplateEnv (compilerInfo $ compiler lbi) $ hostPlatform lbi-        dirArg = "-d" : [dir]         rpathArg = maybe [] (("-t" :) . pure . (</> dir) . fromPathTemplate) $             flagToMaybe $ prefix $ configInstallDirs $ configFlags lbi-        archiveArg = "-a" : [prettyShow $ package desc]+        dirArg = ["-d", dir]+        archiveArg = ["-a", prettyShow $ package desc]     nhmToolP <- fst <$> requireProgram verbosity nhmTool (withPrograms lbi)-    let nhmToolR = programInvocation nhmToolP $-            "dist" : lib : "-v" : rpathArg ++ dirArg ++ archiveArg+    let nhmToolR = programInvocation nhmToolP $ "dist" : lib :+            verbosityArg verbosity ++ rpathArg ++ dirArg ++ archiveArg     runProgramInvocation verbosity nhmToolR  -- | Build hooks.
ngx-export-distribution.cabal view
@@ -1,5 +1,5 @@ name:                       ngx-export-distribution-version:                    0.5.4.3+version:                    0.5.5.0 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
@@ -172,18 +172,17 @@               | arg `elem` ["-v", "-version", "--version"] ->                   putStrLn progVersion >> exitSuccess         args' -> usage Nothing $ null args'-    where normalizeDistData dist@DistData {..} =-              dist { distDataTargetDir =-                         if distDataTargetDir == "-"-                             then ""-                             else distDataTargetDir-                   , distDataArchive =-                         if distDataArchive == "-"-                             then ""-                             else distDataArchive-                   , distDataPatchOnly =-                         distDataDir == "-" || distDataPatchOnly-                   }+    where normalizeDistData dist@DistData { distDataDir = "-" } =+              normalizeDistData dist { distDataDir = defaultDistDataDir+                                     , distDataPatchOnly = True+                                     }+          normalizeDistData dist@DistData { distDataArchive = "-" } =+              normalizeDistData dist { distDataArchive = "" }+          normalizeDistData dist@DistData { distDataTargetDir = "-" } =+              normalizeDistData dist { distDataTargetDir = "" }+          normalizeDistData dist@DistData { distDataDir = "" } =+              normalizeDistData dist { distDataDir = defaultDistDataDir }+          normalizeDistData dist = dist  parseDistArg :: Maybe DistData -> String -> Maybe DistData parseDistArg Nothing _ = Nothing@@ -431,11 +430,10 @@                  )                 ,("hie.yaml", hieYaml init', True)                 ]-    forM_ files $+    forM_ files $ \(name, file, overridable) ->         if initDataToStdout-            then \(name, file, _) ->-                printHeader (name ++ "\n") >> T.putStrLn file-            else \(name, file, overridable) -> do+            then printHeader (name ++ "\n") >> T.putStrLn file+            else do                 exists <- doesFileExist name                 if exists                     then if initDataForce && overridable