packages feed

ats-pkg 2.3.0.0 → 2.3.0.3

raw patch · 9 files changed

+50/−30 lines, 9 files

Files

ats-pkg.cabal view
@@ -1,5 +1,5 @@ name:                ats-pkg-version:             2.3.0.0+version:             2.3.0.3 synopsis:            A build tool for ATS description:         A collection of scripts to simplify building ATS projects. homepage:            https://github.com/vmchale/atspkg#readme@@ -56,6 +56,7 @@                      , unix                      , lens                      , dhall+                     , ansi-wl-pprint                      , shake-ats >= 1.3.0.0                      , shake-ext >= 2.3.0.0                      , composition-prelude >= 1.1.0.2
config.dhall view
@@ -1,5 +1,6 @@ let cfg =    { defaultPkgs = "https://raw.githubusercontent.com/vmchale/atspkg/master/pkgs/pkg-set.dhall"+  , solverIters = 15   }  in cfg
man/atspkg.1 view
@@ -61,6 +61,11 @@ Rebuild all binary targets. .RS .RE+.TP+.B \f[B]\-l\f[], \f[B]\-\-no\-lint\f[]+Disable the shake linter+.RS+.RE .SH CONFIGURATION .PP \f[B]atspkg\f[] is configured with Dhall, in an atspkg.dhall file.
src/Language/ATS/Package/Build.hs view
@@ -53,7 +53,7 @@ build :: [String] -- ^ Targets       -> IO () build rs = bool (mkPkgEmpty [buildAll Nothing]) (mkPkgEmpty mempty) =<< check Nothing-    where mkPkgEmpty ts = mkPkg False False ts rs Nothing 1+    where mkPkgEmpty ts = mkPkg False False True ts rs Nothing 1  -- TODO clean generated ATS mkClean :: Rules ()@@ -124,11 +124,12 @@  options :: Bool -- ^ Whether to rebuild config         -> Bool -- ^ Whether to rebuild all targets+        -> Bool -- ^ Whether to run the linter         -> [String] -- ^ A list of targets         -> ShakeOptions-options rb rba rs = shakeOptions { shakeFiles = ".atspkg"+options rb rba lint rs = shakeOptions { shakeFiles = ".atspkg"                           , shakeThreads = 4-                          , shakeLint = Just LintBasic+                          , shakeLint = bool Nothing (Just LintBasic) lint                           , shakeVersion = showVersion version                           , shakeRebuild = foldMap g [ (rb, [(RebuildNow, ".atspkg/config")])                                                      , (rba, (RebuildNow ,) <$> rs)@@ -142,14 +143,15 @@  mkPkg :: Bool -- ^ Whether to ignore cached package config       -> Bool -- ^ Rebuild all targets+      -> Bool -- ^ Run linter       -> [IO ()] -- ^ Setup       -> [String] -- ^ Targets       -> Maybe String -- ^ Target triple       -> Int -- ^ Verbosity       -> IO ()-mkPkg rb rba setup rs tgt _ = do+mkPkg rb rba lint setup rs tgt _ = do     cfg <- cleanConfig rs-    let opt = options rb rba $ pkgToTargets cfg rs+    let opt = options rb rba lint $ pkgToTargets cfg rs     shake opt $         mconcat             [ want rs
src/Language/ATS/Package/Dependency.hs view
@@ -34,11 +34,11 @@           -> IO () fetchDeps setup' deps cdeps b' =     unless (null deps && null cdeps && b') $ do-        deps' <- join <$> setBuildPlan "ats" deps+        deps' <- join <$> setBuildPlan "ats" deps 15         putStrLn "Checking ATS dependencies..."         d <- (<> "lib/") <$> pkgHome         let libs' = fmap (buildHelper False) deps'-        cdeps' <- join <$> setBuildPlan "c" cdeps+        cdeps' <- join <$> setBuildPlan "c" cdeps 4         let unpacked = fmap (over dirLens (TL.pack d <>)) cdeps'             clibs = fmap (buildHelper False) unpacked         parallel_ (setup' ++ libs' ++ clibs)
src/Language/ATS/Package/Error.hs view
@@ -5,6 +5,7 @@                                   , resolutionFailed                                   ) where +import           Data.Dependency import           System.Exit import           Text.PrettyPrint.ANSI.Leijen @@ -13,18 +14,18 @@ unrecognized :: String -> IO a unrecognized = printErr . Unrecognized -resolutionFailed :: IO a-resolutionFailed = printErr ResolutionFailed+resolutionFailed :: ResolveError -> IO a+resolutionFailed = printErr . DepErr  data PackageError = Unrecognized String-                  | ResolutionFailed+                  | DepErr ResolveError  (<#>) :: Doc -> Doc -> Doc (<#>) a b = a <> line <> b  instance Pretty PackageError where     pretty (Unrecognized t) = red "Error:" <+> "Unrecognized archive format when unpacking" <#> hang 2 (text t)-    pretty ResolutionFailed = red "Error:" <+> "Package resolution failed.\n"+    pretty (DepErr d)       = pretty d  -- TODO monaderror? printErr :: PackageError -> IO a
src/Language/ATS/Package/Exec.hs view
@@ -33,6 +33,7 @@                      , _archTarget :: Maybe String                      , _rebuildAll :: Bool                      , _verbosity  :: Int+                     , _lint       :: Bool                      }              | Clean              | Test { _targets :: [String] }@@ -87,7 +88,12 @@         <> short 'r'         <> help "Force rebuild of all targets")     <*> (length <$>-        many (flag' () (short 't' <> long "verbose")))+        many (flag' () (short 't' <> long "verbose" <> help "Turn up verbosity")))+    <*> fmap not+        (switch+        (long "no-lint"+        <> short 'l'+        <> help "Disable the shake linter"))  fetch :: Parser Command fetch = Fetch <$>@@ -101,25 +107,25 @@     buildHelper True (ATSDependency lib dirName url' undefined mempty)     ps <- getSubdirs p     pkgDir <- fromMaybe p <$> findFile (p:ps) "atspkg.dhall"-    let a = withCurrentDirectory (takeDirectory pkgDir) (mkPkg False False mempty ["install"] Nothing 0)+    let a = withCurrentDirectory (takeDirectory pkgDir) (mkPkg False False False mempty ["install"] Nothing 0)     bool (buildAll (Just pkgDir) >> a) a =<< check (Just pkgDir)  exec :: IO () exec = execParser wrapper >>= run -runHelper :: Bool -> Bool -> [String] -> Maybe String -> Int -> IO ()-runHelper rb rba rs tgt v = bool-    (mkPkg rb rba [buildAll Nothing] rs tgt v)-    (mkPkg rb rba mempty rs tgt v)+runHelper :: Bool -> Bool -> Bool -> [String] -> Maybe String -> Int -> IO ()+runHelper rb rba lint rs tgt v = bool+    (mkPkg rb rba lint [buildAll Nothing] rs tgt v)+    (mkPkg rb rba lint mempty rs tgt v)     =<< check Nothing  run :: Command -> IO () run Upgrade = upgradeAtsPkg run Nuke = cleanAll run (Fetch u) = fetchPkg u-run Clean = mkPkg False False mempty ["clean"] Nothing 0-run (Build rs rb tgt rba v) = runHelper rb rba rs tgt v-run c = runHelper False False rs Nothing 0+run Clean = mkPkg False False False mempty ["clean"] Nothing 0+run (Build rs rb tgt rba v lint) = runHelper rb rba lint rs tgt v+run c = runHelper False False False rs Nothing 0     where rs = g c           g Install       = ["install"]           g (Test  ts)    = "test" : ts
src/Language/ATS/Package/PackageSet.hs view
@@ -28,8 +28,9 @@  setBuildPlan :: FilePath -- ^ Filepath for cache inside @.atspkg@              -> [String] -- ^ Libraries we want+             -> Int -- ^ Depth of search when resolving dependencies              -> IO [[ATSDependency]]-setBuildPlan p deps = do+setBuildPlan p deps n  = do     b <- doesFileExist depCache     bool setBuildPlan' (decode <$> BSL.readFile depCache) b @@ -37,16 +38,19 @@           setBuildPlan' = do             putStrLn "Resolving dependencies..."             pkgSet <- input auto "https://raw.githubusercontent.com/vmchale/atspkg/master/pkgs/pkg-set.dhall"-            case mkBuildPlan pkgSet deps of-                Just x  -> createDirectoryIfMissing True ".atspkg" >> BSL.writeFile depCache (encode x) >> pure x-                Nothing -> resolutionFailed+            case mkBuildPlan pkgSet n deps of+                Right x -> createDirectoryIfMissing True ".atspkg" >> BSL.writeFile depCache (encode x) >> pure x+                Left x  -> resolutionFailed x -mkBuildPlan :: ATSPackageSet -> [String] -> Maybe [[ATSDependency]]-mkBuildPlan aps@(ATSPackageSet ps) = finalize . resolve . fmap asDep <=< stringBuildPlan+mkBuildPlan :: ATSPackageSet -> Int -> [String] -> DepM [[ATSDependency]]+mkBuildPlan aps@(ATSPackageSet ps) n = finalize . resolve . fmap asDep <=< stringBuildPlan     where finalize = fmap (fmap (fmap (lookupVersions aps)))-          resolve = resolveDependencies (atsPkgsToPkgs aps)-          stringBuildPlan names = sequence [ lookup x libs | x <- names ]+          resolve = resolveDependencies n (atsPkgsToPkgs aps)+          stringBuildPlan names = sequence [ lookup' x libs | x <- names ]               where libs = (TL.unpack . libName &&& id) <$> ps+                    lookup' k vs = case lookup k vs of+                        Just x  -> Right x+                        Nothing -> Left (NotPresent k)  asDep :: ATSDependency -> Dependency asDep ATSDependency{..} = Dependency (TL.unpack libName) mempty (TL.unpack <$> libDeps) libVersion
stack.yaml view
@@ -2,6 +2,7 @@ resolver: lts-10.4 packages:   - '.'+  - 'dependency' extra-deps:   - shake-ext-2.3.0.0   - shake-ats-1.3.0.6@@ -9,7 +10,6 @@   - language-ats-0.2.0.0   - cli-setup-0.2.0.1   - hs2ats-0.2.1.3-  - dependency-0.1.0.3   - ats-setup-0.3.0.2 flags:   ats-pkg: