packages feed

ats-pkg 1.2.0.7 → 1.2.0.8

raw patch · 6 files changed

+43/−18 lines, 6 filesdep +shake-atsdep ~composition-preludedep ~shake-extPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: shake-ats

Dependency ranges changed: composition-prelude, shake-ext

API changes (from Hackage documentation)

- Language.ATS.Package.Dependency: [dir] :: Dependency -> Text
+ Language.ATS.Package.Dependency: [_dir] :: Dependency -> Text
+ Language.ATS.Package.Type: [clib] :: Pkg -> [Dependency]
- Language.ATS.Package.Dependency: fetchDeps :: Bool -> [Dependency] -> IO ()
+ Language.ATS.Package.Dependency: fetchDeps :: Bool -> [Dependency] -> [Dependency] -> IO ()
- Language.ATS.Package.Type: Pkg :: [Bin] -> [Bin] -> Maybe Text -> [Integer] -> [Integer] -> [Dependency] -> Pkg
+ Language.ATS.Package.Type: Pkg :: [Bin] -> [Bin] -> Maybe Text -> [Integer] -> [Integer] -> [Dependency] -> [Dependency] -> Pkg

Files

ats-pkg.cabal view
@@ -1,5 +1,5 @@ name:                ats-pkg-version:             1.2.0.7+version:             1.2.0.8 synopsis:            Package manager for ATS description:         A collection of scripts to make building ATS projects easy. homepage:            https://github.com/vmchale/ats-pkg#readme@@ -12,7 +12,6 @@ build-type:          Simple extra-doc-files:     README.md extra-source-files:  stack.yaml-                   , cabal.project.local cabal-version:       1.18  Flag development {@@ -43,7 +42,8 @@                      , unix                      , lens                      , dhall-                     , shake-ext >= 1.2.0.3+                     , shake-ats+                     , shake-ext                      , composition-prelude >= 1.1.0.2                      , optparse-applicative                      , temporary
− cabal.project.local
@@ -1,6 +0,0 @@-constraints: ats-pkg +development-with-compiler: ghc-8.2.2--- tests: True-documentation: True-haddock-hoogle: True-haddock-internal: True
src/Language/ATS/Package/Dependency.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE DeriveAnyClass    #-} {-# LANGUAGE DeriveGeneric     #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell   #-}  module Language.ATS.Package.Dependency ( -- * Functions                                          fetchDeps@@ -13,25 +14,53 @@ import           Control.Concurrent.ParallelIO.Global import           Control.Lens import           Control.Monad+import           Data.Semigroup                       (Semigroup (..)) import qualified Data.Text.Lazy                       as TL import           Dhall import           Network.HTTP.Client                  hiding (decompress) import           Network.HTTP.Client.TLS              (tlsManagerSettings) import           System.Directory+import           System.Environment                   (getEnv)+import           System.Posix.Files+import           System.Process  -- | Type for a dependency data Dependency = Dependency { libName :: Text -- ^ Library name, e.g.-                             , dir     :: Text -- ^ Directory we should unpack to+                             , _dir    :: Text -- ^ Directory we should unpack to                              , url     :: Text -- ^ Url pointing to tarball                              }     deriving (Eq, Show, Generic, Interpret) -fetchDeps :: Bool -> [Dependency] -> IO ()-fetchDeps b deps =+makeLenses ''Dependency++fetchDeps :: Bool -- ^ Set to 'False' if unsure.+          -> [Dependency] -- ^ ATS dependencies+          -> [Dependency] -- ^ C Dependencies+          -> IO ()+fetchDeps b deps cdeps =     unless (null deps) $ do         putStrLn "Checking ATS dependencies..."+        d <- pkgHome         let libs = fmap (buildHelper b) deps-        parallel_ libs >> stopGlobalPool+            unpacked = fmap (over dir (TL.pack d <>)) cdeps+            clibs = fmap (buildHelper b) unpacked+        parallel_ (libs ++ clibs) >> stopGlobalPool+        mapM_ setup unpacked++pkgHome :: IO FilePath+pkgHome = (++ "/.atspkg/lib/") <$> getEnv "HOME"++clibSetup :: FilePath -> IO ()+clibSetup p = do+    let configurePath = p ++ "/configure"+    setFileMode configurePath ownerModes+    void $ readCreateProcess ((proc p ["--prefix", p]) { cwd = Just p }) ""+    void $ readCreateProcess ((proc "make" []) { cwd = Just p}) ""+    void $ readCreateProcess ((proc "make" ["install"]) { cwd = Just p }) ""++setup :: Dependency -> IO ()+setup (Dependency _ dirName' _) =+    clibSetup (TL.unpack dirName')  buildHelper :: Bool -> Dependency -> IO () buildHelper b (Dependency lib' dirName' url'') = do
src/Language/ATS/Package/Exec.hs view
@@ -67,7 +67,7 @@ fetchPkg :: String -> IO () fetchPkg pkg = withSystemTempDirectory "atspkg" $ \p -> do     let (lib, dirName, url') = ("atspkg", p, pkg) & each %~ TL.pack-    fetchDeps True [Dependency lib dirName url']+    fetchDeps True [Dependency lib dirName url'] []     ps <- fmap ((p ++ "/") ++) <$> listDirectory p     pkgDir <- fromMaybe p <$> findFile (p:ps) "atspkg.dhall"     let a = withCurrentDirectory (takeDirectory pkgDir) (mkPkg ["install"])
src/Language/ATS/Package/Type.hs view
@@ -92,9 +92,9 @@         mapM_ cmd_ tests  pkgToAction :: [String] -> Pkg -> Rules ()-pkgToAction rs (Pkg bs ts mt v v' ds) = do+pkgToAction rs (Pkg bs ts mt v v' ds cds) = do     unless (rs == ["clean"]) $-        liftIO $ fetchDeps False ds+        liftIO $ fetchDeps False ds cds     action (need ["atspkg.dhall"])     mapM_ g (bs ++ ts)     let bins = TL.unpack . target <$> bs@@ -120,5 +120,6 @@                , version      :: [Integer] -- ^ Library version                , compiler     :: [Integer] -- ^ Compiler version                , dependencies :: [Dependency] -- ^ List of dependencies+               , clib         :: [Dependency] -- ^ List of C dependencies                }          deriving (Show, Eq, Generic, Interpret)
stack.yaml view
@@ -3,9 +3,10 @@ packages:   - '.' extra-deps:-  - shake-ext-1.2.0.3+  - shake-ext-1.4.0.0+  - shake-ats-0.1.0.0   - composition-prelude-1.1.0.2-  - language-ats-0.1.0.6+  - language-ats-0.1.1.3 flags:   ats-pkg:     development: false