ats-pkg 2.2.0.0 → 2.2.0.1
raw patch · 6 files changed
+51/−11 lines, 6 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- ats-pkg.cabal +2/−1
- src/Language/ATS/Package/Build.hs +8/−7
- src/Language/ATS/Package/Compiler.hs +3/−1
- src/Language/ATS/Package/Exec.hs +4/−0
- src/Language/ATS/Package/Upgrade.hs +32/−0
- stack.yaml +2/−2
ats-pkg.cabal view
@@ -1,5 +1,5 @@ name: ats-pkg-version: 2.2.0.0+version: 2.2.0.1 synopsis: Package manager for ATS description: A collection of scripts to make building ATS projects easy. homepage: https://github.com/vmchale/atspkg#readme@@ -36,6 +36,7 @@ , Language.ATS.Package.Dependency , Language.ATS.Package.Compiler , Language.ATS.Package.Build+ , Language.ATS.Package.Upgrade build-depends: base >= 4.7 && < 5 , http-client , filemanip
src/Language/ATS/Package/Build.hs view
@@ -1,6 +1,8 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TupleSections #-} +-- | This module holds various functions for turning a package into a set of rules+-- or an 'IO ()'. module Language.ATS.Package.Build ( mkPkg , pkgToAction , build@@ -53,13 +55,12 @@ -- TODO clean generated ATS mkClean :: Rules ()-mkClean =- "clean" ~> do- cleanHaskell- removeFilesAfter "." ["//*.1", "//*.c", "tags"]- removeFilesAfter "target" ["//*"]- removeFilesAfter ".atspkg" ["//*"]- removeFilesAfter "ats-deps" ["//*"]+mkClean = "clean" ~> do+ cleanHaskell+ removeFilesAfter "." ["//*.1", "//*.c", "tags"]+ removeFilesAfter "target" ["//*"]+ removeFilesAfter ".atspkg" ["//*"]+ removeFilesAfter "ats-deps" ["//*"] mkInstall :: Rules () mkInstall =
src/Language/ATS/Package/Compiler.hs view
@@ -6,7 +6,6 @@ , cleanAll , fetchCompiler , setupCompiler- , Version (..) ) where import qualified Codec.Archive.Tar as Tar@@ -21,6 +20,9 @@ import System.FilePath.Find (find) import System.Posix.Files import System.Process++-- HOPEFULLY only linux or darwin?+-- isDigit -- request to https://github.com/vmchale/atspkg/releases/latest/ for latest -- version, then we can upgrade this tool as well.
src/Language/ATS/Package/Exec.hs view
@@ -15,6 +15,7 @@ import Language.ATS.Package.Build import Language.ATS.Package.Compiler import Language.ATS.Package.Dependency+import Language.ATS.Package.Upgrade import Options.Applicative hiding (auto) import Paths_ats_pkg import System.Directory@@ -39,6 +40,7 @@ | Test | Fetch { _url :: String } | Nuke+ | Upgrade command' :: Parser Command command' = hsubparser@@ -48,6 +50,7 @@ <> command "build" (info build' (progDesc "Build current package targets")) <> command "test" (info (pure Test) (progDesc "Test current package")) <> command "nuke" (info (pure Nuke) (progDesc "Uninstall all globally installed libraries"))+ <> command "upgrade" (info (pure Upgrade) (progDesc "Upgrade to the latest version of atspkg")) ) build' :: Parser Command@@ -95,6 +98,7 @@ =<< check Nothing run :: Command -> IO ()+run Upgrade = upgradeAtsPkg run Nuke = cleanAll run (Fetch u) = fetchPkg u run Clean = mkPkg False False mempty ["clean"] Nothing
+ src/Language/ATS/Package/Upgrade.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE OverloadedStrings #-}++module Language.ATS.Package.Upgrade ( upgradeAtsPkg+ ) where++import qualified Data.ByteString.Lazy.Char8 as BSL+import Data.Char (isDigit)+import Data.List (intersperse)+import Data.Semigroup+import Network.HTTP.Client+import Network.HTTP.Client.TLS (tlsManagerSettings)+import System.Info++manufacturer :: String+manufacturer = case os of+ "darwin" -> "apple"+ _ -> "unknown"++targetArch :: String+targetArch = mconcat . intersperse "-" $ [arch, manufacturer, os]++upgradeAtsPkg :: IO ()+upgradeAtsPkg = do+ manager <- newManager tlsManagerSettings+ initialRequest <- parseRequest "https://github.com/vmchale/atspkg/releases/latest"+ response <- responseBody <$> httpLbs (initialRequest { method = "GET", redirectCount = 0 }) manager+ let strVersion = BSL.takeWhile (/='"') . BSL.dropWhile (not . isDigit) . BSL.dropWhile (/='"') $ response+ binRequest = "https://github.com/vmchale/atspkg/releases/download/" <> BSL.unpack strVersion <> "/atspkg-" <> targetArch+ putStrLn binRequest+ followupRequest <- parseRequest binRequest+ binBytes <- responseBody <$> httpLbs (followupRequest { method = "GET" }) manager+ BSL.writeFile "atspkg" binBytes
stack.yaml view
@@ -3,8 +3,8 @@ packages: - '.' extra-deps:- - shake-ext-2.1.0.2- - shake-ats-1.2.0.0+ - shake-ext-2.3.0.0+ - shake-ats-1.3.0.0 - composition-prelude-1.1.0.2 - language-ats-0.1.1.18 - cli-setup-0.2.0.1