ats-pkg 3.2.1.8 → 3.2.2.0
raw patch · 7 files changed
+44/−18 lines, 7 filesdep ~shakePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: shake
API changes (from Hackage documentation)
+ Language.ATS.Package: [headers] :: Debian -> [Text]
- Language.ATS.Package: Debian :: Text -> Version -> Text -> Text -> Text -> Maybe Text -> [Text] -> [Text] -> Debian
+ Language.ATS.Package: Debian :: Text -> Version -> Text -> Text -> Text -> Maybe Text -> [Text] -> [Text] -> [Text] -> Debian
Files
- CHANGELOG.md +6/−0
- README.md +2/−1
- app/Main.hs +6/−4
- ats-pkg.cabal +3/−3
- dhall/atspkg-prelude.dhall +3/−0
- src/Language/ATS/Package/Build.hs +1/−1
- src/Language/ATS/Package/Debian.hs +23/−9
CHANGELOG.md view
@@ -1,5 +1,11 @@ # ats-pkg +## 3.3.2.0++ * Update `Debian` type and adjust prelude accordingly+ * Allow Debian packages built to include header files and libraries.+ * Bug fixes related to Debian packaging.+ ## 3.2.1.8 * Update Dhall prelude
README.md view
@@ -1,6 +1,7 @@ # ATSPackage [](https://travis-ci.org/vmchale/atspkg)+[](https://ci.appveyor.com/project/vmchale/atspkg) [](http://hackage.haskell.org/package/ats-pkg) [](https://hackage.haskell.org/package/ats-pkg) @@ -50,7 +51,7 @@ The easiest way to install is via a script, viz. ```bash-curl -sSl https://raw.githubusercontent.com/vmchale/atspkg/master/bash/install.sh | bash -s+curl -sSl https://raw.githubusercontent.com/vmchale/atspkg/master/bash/install.sh | sh -s ``` Thereafter, you can run
app/Main.hs view
@@ -50,6 +50,7 @@ } | Fetch { _url :: String , _atspkgArg :: Maybe String+ , _verbosity :: Int } | Nuke | Upgrade@@ -210,14 +211,15 @@ (metavar "URL" <> help "URL pointing to a tarball containing the package to be installed.") <*> pkgArgs+ <*> verbosity -fetchPkg :: Maybe String -> String -> IO ()-fetchPkg mStr pkg = withSystemTempDirectory "atspkg" $ \p -> do+fetchPkg :: Maybe String -> String -> Int -> IO ()+fetchPkg mStr pkg v = withSystemTempDirectory "atspkg" $ \p -> do let (dirName, url') = (p, pkg) & each %~ TL.pack buildHelper True (ATSDependency mempty dirName url' undefined undefined mempty mempty mempty mempty) ps <- getSubdirs p pkgDir <- fromMaybe p <$> findFile (p:ps) "atspkg.dhall"- let setup = [buildAll 0 mStr Nothing (Just pkgDir)]+ let setup = [buildAll v mStr Nothing (Just pkgDir)] withCurrentDirectory (takeDirectory pkgDir) (mkPkg mStr False False False setup ["install"] Nothing 0) stopGlobalPool @@ -236,7 +238,7 @@ run (CheckSet p b) = void $ checkPkgSet p b run Upgrade = upgradeBin "vmchale" "atspkg" run Nuke = cleanAll-run (Fetch u mArg) = fetchPkg mArg u+run (Fetch u mArg v) = fetchPkg mArg u v run Clean = mkPkg Nothing False True False mempty ["clean"] Nothing 0 run (Build rs mArg tgt rba v lint tim) = runHelper rba lint tim rs mArg tgt v run (Test ts mArg rba v lint tim) = runHelper rba lint tim ("test" : ts) mArg Nothing v
ats-pkg.cabal view
@@ -1,12 +1,12 @@ cabal-version: 2.0 name: ats-pkg-version: 3.2.1.8+version: 3.2.2.0 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2018 Vanessa McHale maintainer: vamchale@gmail.com author: Vanessa McHale-tested-with: ghc ==8.4.3+tested-with: ghc ==8.4.3 ghc ==8.2.2 bug-reports: https://github.com/vmchale/atspkg/issues synopsis: A build tool for ATS description:@@ -169,7 +169,7 @@ ghc-options: -eventlog -with-rtsopts=-l if flag(profile)- ghc-options: -with-rtsopts=-h+ ghc-options: -with-rtsopts=-h -with-rtsopts=-p if flag(development) ghc-options: -Werror
dhall/atspkg-prelude.dhall view
@@ -68,6 +68,7 @@ , manpage : Optional Text , binaries : List Text , libraries : List Text+ , headers : List Text } in @@ -229,6 +230,8 @@ , binaries = [] : List Text , libraries = []+ : List Text+ , headers = [] : List Text } in
src/Language/ATS/Package/Build.hs view
@@ -318,7 +318,7 @@ -- TODO depend on tgt somehow? specialDeps %> \out -> do cfgBin' <- cfgBin- need [ cfgBin', flags, cfgFile]+ need [ cfgBin', flags, cfgFile ] v'' <- getVerbosity liftIO $ fetchDeps v'' (ccFromString cc') mStr setup (first unpack <$> ds) (first unpack <$> cdps) (first unpack <$> bdeps) cfgBin' atslibSetup False *> writeFile out ""
src/Language/ATS/Package/Debian.hs view
@@ -25,6 +25,7 @@ , manpage :: Maybe Text , binaries :: [Text] , libraries :: [Text]+ , headers :: [Text] } deriving (Generic, Binary, Interpret) @@ -45,17 +46,27 @@ debRules deb = unpack (target deb) %> \out -> do - need (unpack <$> binaries deb)+ let binaries' = unpack <$> binaries deb+ libraries' = unpack <$> libraries deb+ headers' = unpack <$> headers deb + traverse_ need [ binaries'+ , libraries'+ , headers'+ ]+ let packDir = unpack (package deb)- makeRel = (("target/" ++ packDir ++ "/") ++)- debianDir = makeRel "/DEBIAN"- binDir = makeRel "/usr/local/bin"- libDir = makeRel "/usr/local/lib"- manDir = makeRel "/usr/local/share/man/man1"+ makeRel = (("target" </> packDir) </>)+ debianDir = makeRel "DEBIAN"+ binDir = makeRel "usr/local/bin"+ libDir = makeRel "usr/local/lib"+ manDir = makeRel "usr/local/share/man/man1"+ includeDir = makeRel "usr/local/include" + liftIO $ print debianDir+ traverse_ (liftIO . createDirectoryIfMissing True)- [ binDir, debianDir, manDir ]+ [ binDir, debianDir, manDir, includeDir ] fold $ do mp <- manpage deb@@ -63,8 +74,11 @@ need [unpack mp] *> copyFile' (unpack mp) (manDir ++ "/" ++ takeFileName (unpack mp)) - zipWithM_ copyFile' (unpack <$> binaries deb) (((binDir ++ "/") ++) . unpack <$> binaries deb)- zipWithM_ copyFile' (unpack <$> libraries deb) (((libDir ++ "/") ++) . unpack <$> libraries deb)+ let moveFiles files dir = zipWithM_ copyFile' files ((dir </>) . takeFileName <$> files)++ moveFiles binaries' binDir+ moveFiles libraries' libDir+ moveFiles headers' includeDir writeFileChanged (debianDir ++ "/control") (control deb)