packages feed

wolf 0.3.36 → 0.3.37

raw patch · 6 files changed

+21/−92 lines, 6 filesdep −amazonka-coredep −amazonka-s3dep −conduit-combinators

Dependencies removed: amazonka-core, amazonka-s3, conduit-combinators, filemanip

Files

src/Network/AWS/Wolf/Act.hs view
@@ -14,33 +14,38 @@ import Network.AWS.Wolf.Ctx import Network.AWS.Wolf.File import Network.AWS.Wolf.Prelude-import Network.AWS.Wolf.S3 import Network.AWS.Wolf.SWF import Network.AWS.Wolf.Types import System.Directory import System.Exit import System.Process +-- | S3 copy call.+--+cp :: MonadIO m => FilePath -> FilePath -> m ()+cp f t = liftIO $ callProcess "aws" [ "s3", "cp", "--quiet", "--recursive", f, t ]++-- | Key to download and upload objects from.+--+key :: MonadAmazonStore c m => m FilePath+key = do+  b <- view cBucket <$> view ccConf+  p <- view ascPrefix+  pure $ "s3:/" -/- textToString b -/- textToString p+ -- | Download artifacts to the store input directory. -- download :: MonadAmazonStore c m => FilePath -> m () download dir = do   traceInfo "download" [ "dir" .= dir ]-  ks <- listArtifacts-  forM_ ks $ \k -> do-    traceInfo "download" [ "dir" .= dir, "key" .= k ]-    touchDirectory (dir </> k)-    getArtifact (dir </> k) k+  flip cp dir =<< key  -- | Upload artifacts from the store output directory. -- upload :: MonadAmazonStore c m => FilePath -> m () upload dir = do   traceInfo "upload" [ "dir" .= dir ]-  ks <- findRelativeFiles dir-  forM_ ks $ \k -> do-    traceInfo "upload" [ "dir" .= dir, "key" .= k ]-    putArtifact (dir </> k) k+  cp dir =<< key  -- | callCommand wrapper that maybe returns an exception. --
src/Network/AWS/Wolf/File.hs view
@@ -4,9 +4,7 @@ -- | Files, directories, and encoding / decoding file functions. -- module Network.AWS.Wolf.File-  ( findRelativeFiles-  , touchDirectory-  , dataDirectory+  ( dataDirectory   , storeDirectory   , inputDirectory   , outputDirectory@@ -22,24 +20,9 @@ import qualified Data.ByteString.Lazy     as LBS import           Data.Time import           Data.Yaml                hiding (encode)-import           Network.AWS.Wolf.Prelude hiding (find)+import           Network.AWS.Wolf.Prelude import           System.Directory-import           System.FilePath-import           System.FilePath.Find import           System.IO                hiding (readFile, writeFile)---- | Recursively find all files under a directory.----findRelativeFiles :: MonadIO m => FilePath -> m [FilePath]-findRelativeFiles dir = do-  files <- liftIO $ find always (fileType ==? RegularFile) dir-  pure $ makeRelative dir <$> files---- | Create parent directory of file if missing.----touchDirectory :: MonadIO m => FilePath -> m ()-touchDirectory =-  liftIO . createDirectoryIfMissing True . takeDirectory  -- | Determine path to data directory and create it. --
src/Network/AWS/Wolf/Prelude.hs view
@@ -10,7 +10,7 @@   ) where  import Control.Concurrent.Async.Lifted-import Preamble                        as Exports hiding (stripPrefix)+import Preamble                        as Exports  -- | Run a list of actions concurrently. --
− src/Network/AWS/Wolf/S3.hs
@@ -1,54 +0,0 @@-{-# LANGUAGE FlexibleContexts  #-}-{-# LANGUAGE NoImplicitPrelude #-}---- | S3 Calls.----module Network.AWS.Wolf.S3-  ( listArtifacts-  , getArtifact-  , putArtifact-  ) where--import Control.Monad.Trans.AWS-import Data.Conduit-import Data.Conduit.Combinators-import Network.AWS.Data-import Network.AWS.Data.Body-import Network.AWS.S3           hiding (cBucket)-import Network.AWS.Wolf.Ctx-import Network.AWS.Wolf.Prelude hiding (concatMap)-import Network.AWS.Wolf.Types-import System.FilePath---- | List keys in bucket with prefix.----listArtifacts :: MonadAmazonStore c m => m [FilePath]-listArtifacts = do-  b <- view cBucket <$> view ccConf-  p <- view ascPrefix-  runResourceT $ runAmazonCtx $-    paginate (set loPrefix (pure p) $ listObjects (BucketName b))-      =$= concatMap ((makeRelative (textToString p) . textToString . toText . view oKey <$>) . view lorsContents)-      $$  sinkList---- | Get object in bucket with key.----getArtifact :: MonadAmazonStore c m => FilePath -> FilePath -> m ()-getArtifact file key = do-  b <- view cBucket <$> view ccConf-  p <- view ascPrefix-  runResourceT $ runAmazonCtx $ do-    gors <- send $ getObject (BucketName b) (ObjectKey (p -/- textFromString key))-    sinkBody (gors ^. gorsBody) (sinkFileBS file)---- | Put object in bucket with key.----putArtifact :: MonadAmazonStore c m => FilePath -> FilePath -> m ()-putArtifact file key = do-  b <- view cBucket <$> view ccConf-  p <- view ascPrefix-  runResourceT $ runAmazonCtx $ do-    (sha, len) <- sourceFileBS file $$ getZipSink $ (,) <$> ZipSink sinkSHA256 <*> ZipSink lengthE-    void $ send $ putObject (BucketName b) (ObjectKey (p -/- textFromString key)) $-      Hashed $ HashedStream sha len $ sourceFileBS file-
src/Network/AWS/Wolf/SWF.hs view
@@ -18,7 +18,7 @@  import Control.Monad.Trans.AWS import Data.Conduit-import Data.Conduit.Combinators hiding (concatMap)+import Data.Conduit.List        hiding (concatMap) import Network.AWS.SWF import Network.AWS.Wolf.Ctx import Network.AWS.Wolf.Prelude@@ -45,7 +45,7 @@   d      <- view cDomain <$> view ccConf   tl     <- taskList <$> view awcQueue   runResourceT $ runAmazonCtx $ do-    pfdtrs <- paginate (pollForDecisionTask d tl) $$ sinkList+    pfdtrs <- paginate (pollForDecisionTask d tl) $$ consume     pure       ( join $ headMay $ view pfdtrsTaskToken <$> pfdtrs       , reverse $ concatMap (view pfdtrsEvents) pfdtrs
wolf.cabal view
@@ -1,5 +1,5 @@ name: wolf-version: 0.3.36+version: 0.3.37 cabal-version: >=1.22 build-type: Simple license: MIT@@ -23,15 +23,11 @@     build-depends:         aeson >=0.11.3.0,         amazonka >=1.4.3,-        amazonka-core >=1.4.3,-        amazonka-s3 >=1.4.3,         amazonka-swf >=1.4.3,         base >=4.8 && <5,         bytestring >=0.10.6.0,         conduit >=1.2.10,-        conduit-combinators >=1.0.8.3,         directory >=1.2.2.0,-        filemanip >=0.3.6.3,         filepath >=1.4.0.0,         http-types >=0.9.1,         lifted-async >=0.9.1.1,@@ -50,7 +46,6 @@         Network.AWS.Wolf.Decide         Network.AWS.Wolf.File         Network.AWS.Wolf.Prelude-        Network.AWS.Wolf.S3         Network.AWS.Wolf.SWF         Network.AWS.Wolf.Types         Network.AWS.Wolf.Types.Ctx