packages feed

ats-pkg 1.2.0.8 → 1.2.1.0

raw patch · 3 files changed

+35/−17 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Language.ATS.Package.Dependency: [_dir] :: Dependency -> Text
+ Language.ATS.Package.Dependency: [dir] :: Dependency -> Text

Files

ats-pkg.cabal view
@@ -1,5 +1,5 @@ name:                ats-pkg-version:             1.2.0.8+version:             1.2.1.0 synopsis:            Package manager for ATS description:         A collection of scripts to make building ATS projects easy. homepage:            https://github.com/vmchale/ats-pkg#readme
src/Language/ATS/Package/Dependency.hs view
@@ -14,6 +14,7 @@ import           Control.Concurrent.ParallelIO.Global import           Control.Lens import           Control.Monad+import           Data.Maybe                           (fromMaybe) import           Data.Semigroup                       (Semigroup (..)) import qualified Data.Text.Lazy                       as TL import           Dhall@@ -26,12 +27,12 @@  -- | 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) -makeLenses ''Dependency+makeLensesFor [("dir", "dirLens"), ("libName", "libNameLens")] ''Dependency  fetchDeps :: Bool -- ^ Set to 'False' if unsure.           -> [Dependency] -- ^ ATS dependencies@@ -40,27 +41,46 @@ fetchDeps b deps cdeps =     unless (null deps) $ do         putStrLn "Checking ATS dependencies..."-        d <- pkgHome+        d <- (<> "lib/") <$> pkgHome         let libs = fmap (buildHelper b) deps-            unpacked = fmap (over dir (TL.pack d <>)) cdeps-            clibs = fmap (buildHelper b) unpacked+            unpacked = fmap (over dirLens (TL.pack d <>)) cdeps+            clibs = fmap (buildHelper b . over libNameLens (const "")) unpacked         parallel_ (libs ++ clibs) >> stopGlobalPool         mapM_ setup unpacked  pkgHome :: IO FilePath-pkgHome = (++ "/.atspkg/lib/") <$> getEnv "HOME"+pkgHome = (++ "/.atspkg/") <$> getEnv "HOME" -clibSetup :: FilePath -> IO ()-clibSetup p = do-    let configurePath = p ++ "/configure"+allSubdirs :: FilePath -> IO [FilePath]+allSubdirs [] = pure mempty+allSubdirs d = do+    d' <- listDirectory d+    let d'' = ((d <> "/") <>) <$> d'+    ds <- filterM doesDirectoryExist d''+    ds' <- mapM allSubdirs ds+    pure $ join (ds : ds')++clibSetup :: String -> FilePath -> IO ()+clibSetup lib' p = do+    subdirs <- allSubdirs p+    configurePath <- fromMaybe (p <> "/configure") <$> findFile subdirs "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 }) ""+    h <- pkgHome+    let procEnv = Just [("CFLAGS" :: String, "-I" <> h <> "include"), ("PATH", "/usr/bin:/bin")]+    putStrLn $ "configuring " ++ lib' ++ "..."+    void $ readCreateProcess ((proc configurePath ["--prefix", h]) { cwd = Just p, env = procEnv, std_err = CreatePipe }) ""+    putStrLn $ "building " ++ lib' ++ "..."+    void $ readCreateProcess ((proc "make" []) { cwd = Just p, std_err = CreatePipe }) ""+    putStrLn $ "installing " ++ lib' ++ "..."+    void $ readCreateProcess ((proc "make" ["install"]) { cwd = Just p, std_err = CreatePipe }) ""  setup :: Dependency -> IO ()-setup (Dependency _ dirName' _) =-    clibSetup (TL.unpack dirName')+setup (Dependency lib' dirName' _) = do+    lib'' <- (<> TL.unpack lib') <$> pkgHome+    b <- doesFileExist lib''+    unless b $ do+        clibSetup (TL.unpack lib') (TL.unpack dirName')+        writeFile lib'' ""  buildHelper :: Bool -> Dependency -> IO () buildHelper b (Dependency lib' dirName' url'') = do@@ -79,7 +99,6 @@         putStrLn ("Unpacking library " ++ lib ++ "...")         Tar.unpack dirName . Tar.read . decompress $ response -        putStrLn ("Setting up library " ++ lib ++ "...")         needsMove <- doesDirectoryExist (dirName ++ "/package")         when needsMove $ do             renameDirectory (dirName ++ "/package") "tempdir"
src/Language/ATS/Package/Type.hs view
@@ -41,7 +41,6 @@ pandoc :: (MonadIO m) => m Bool pandoc = isJust <$> liftIO (findExecutable "pandoc") - mkManpage :: Rules () mkManpage = do     c <- getConfig