@@ -34,7 +34,7 @@ import Control.Monad.Reader (ask, lift)
34import Data.Aeson (FromJSON, eitherDecode')
34import Data.Aeson (FromJSON, eitherDecode')
35import qualified Data.ByteString as BS
35import qualified Data.ByteString as BS
36import qualified Data.ByteString.Lazy as BSL
36import qualified Data.ByteString.Lazy as BSL
37−import Data.Conduit (Sink)
37+import Data.Conduit (Sink, (.|))
38import qualified Data.Conduit.Binary as Conduit
38import qualified Data.Conduit.Binary as Conduit
39import qualified Data.Text as T
39import qualified Data.Text as T
40import qualified Data.Text as Text
40import qualified Data.Text as Text
@@ -172,7 +172,7 @@ inspectContainer cid = requestHelper GET (InspectContainerEndpoint cid) >>= pars
172-- __NOTE__: It's recommended to use one of the other 'LogDriverType's available (like
172-- __NOTE__: It's recommended to use one of the other 'LogDriverType's available (like
173-- syslog) for creating your containers.
173-- syslog) for creating your containers.
174getContainerLogs :: forall m. (MonadIO m, MonadMask m) => LogOpts -> ContainerID -> DockerT m (Either DockerError BSL.ByteString)
174getContainerLogs :: forall m. (MonadIO m, MonadMask m) => LogOpts -> ContainerID -> DockerT m (Either DockerError BSL.ByteString)
175−getContainerLogs logopts cid = requestHelper GET (ContainerLogsEndpoint logopts False cid)
175+getContainerLogs logopts cid = getContainerLogsStream logopts cid Conduit.sinkLbs
177{-| Continuously gets the container's logs as a stream. Uses conduit.
177{-| Continuously gets the container's logs as a stream. Uses conduit.
@@ -189,7 +189,8 @@ __Example__:
191getContainerLogsStream :: forall m b . (MonadIO m, MonadMask m) => LogOpts -> ContainerID -> Sink BS.ByteString m b -> DockerT m (Either DockerError b)
191getContainerLogsStream :: forall m b . (MonadIO m, MonadMask m) => LogOpts -> ContainerID -> Sink BS.ByteString m b -> DockerT m (Either DockerError b)
192+getContainerLogsStream logopts cid sink =
192−getContainerLogsStream logopts cid = requestHelper' GET (ContainerLogsEndpoint logopts True cid)
193+ requestHelper' GET (ContainerLogsEndpoint logopts True cid) (processLog .| sink)
193-- JP: Should the second (follow) argument be True? XXX
194-- JP: Should the second (follow) argument be True? XXX
195-- | Build an Image from a Dockerfile
196-- | Build an Image from a Dockerfile
@@ -224,4 +225,3 @@ createNetwork opts = requestHelper POST (CreateNetworkEndpoint opts) >>= parseR
224-- | Removes a network
225-- | Removes a network
225removeNetwork :: forall m. (MonadIO m, MonadMask m) => NetworkID -> DockerT m (Either DockerError ())
226removeNetwork :: forall m. (MonadIO m, MonadMask m) => NetworkID -> DockerT m (Either DockerError ())
226removeNetwork nid = requestUnit DELETE $ RemoveNetworkEndpoint nid
227removeNetwork nid = requestUnit DELETE $ RemoveNetworkEndpoint nid