#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.OSTree.Functions
(
breakHardlink ,
checkVersion ,
checksumB64FromBytes ,
checksumB64ToBytes ,
checksumBytesPeek ,
checksumBytesPeekValidate ,
checksumFile ,
checksumFileAsync ,
checksumFileAsyncFinish ,
checksumFileAt ,
checksumFileFromInput ,
checksumFromBytes ,
checksumFromBytesV ,
checksumInplaceToBytes ,
checksumToBytes ,
checksumToBytesV ,
cmd_Private__ ,
cmpChecksumBytes ,
commitGetContentChecksum ,
commitGetObjectSizes ,
commitGetParent ,
commitGetTimestamp ,
contentFileParse ,
contentFileParseAt ,
contentStreamParse ,
createDirectoryMetadata ,
diffDirs ,
diffDirsWithOptions ,
diffPrint ,
gpgErrorQuark ,
hashObjectName ,
metadataVariantType ,
objectFromString ,
objectNameDeserialize ,
objectNameSerialize ,
objectToString ,
objectTypeFromString ,
objectTypeToString ,
parseRefspec ,
rawFileToArchiveZ2Stream ,
rawFileToArchiveZ2StreamWithOptions ,
rawFileToContentStream ,
validateChecksumString ,
validateCollectionId ,
validateRemoteName ,
validateRev ,
validateStructureofChecksumString ,
validateStructureofCommit ,
validateStructureofCsumV ,
validateStructureofDirmeta ,
validateStructureofDirtree ,
validateStructureofFileMode ,
validateStructureofObjtype ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GLib.Structs.VariantType as GLib.VariantType
import qualified GI.Gio.Callbacks as Gio.Callbacks
import qualified GI.Gio.Interfaces.AsyncResult as Gio.AsyncResult
import qualified GI.Gio.Interfaces.File as Gio.File
import qualified GI.Gio.Objects.Cancellable as Gio.Cancellable
import qualified GI.Gio.Objects.FileInfo as Gio.FileInfo
import qualified GI.Gio.Objects.InputStream as Gio.InputStream
import {-# SOURCE #-} qualified GI.OSTree.Enums as OSTree.Enums
import {-# SOURCE #-} qualified GI.OSTree.Flags as OSTree.Flags
import {-# SOURCE #-} qualified GI.OSTree.Structs.CmdPrivateVTable as OSTree.CmdPrivateVTable
import {-# SOURCE #-} qualified GI.OSTree.Structs.CommitSizesEntry as OSTree.CommitSizesEntry
import {-# SOURCE #-} qualified GI.OSTree.Structs.DiffDirsOptions as OSTree.DiffDirsOptions
import {-# SOURCE #-} qualified GI.OSTree.Structs.DiffItem as OSTree.DiffItem
foreign import ccall "ostree_validate_structureof_objtype" ostree_validate_structureof_objtype ::
Word8 ->
Ptr (Ptr GError) ->
IO CInt
validateStructureofObjtype ::
(B.CallStack.HasCallStack, MonadIO m) =>
Word8
-> m ()
validateStructureofObjtype :: Word8 -> m ()
validateStructureofObjtype Word8
objtype = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Word8 -> Ptr (Ptr GError) -> IO CInt
ostree_validate_structureof_objtype Word8
objtype
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
foreign import ccall "ostree_validate_structureof_file_mode" ostree_validate_structureof_file_mode ::
Word32 ->
Ptr (Ptr GError) ->
IO CInt
validateStructureofFileMode ::
(B.CallStack.HasCallStack, MonadIO m) =>
Word32
-> m ()
validateStructureofFileMode :: Word32 -> m ()
validateStructureofFileMode Word32
mode = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Word32 -> Ptr (Ptr GError) -> IO CInt
ostree_validate_structureof_file_mode Word32
mode
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
foreign import ccall "ostree_validate_structureof_dirtree" ostree_validate_structureof_dirtree ::
Ptr GVariant ->
Ptr (Ptr GError) ->
IO CInt
validateStructureofDirtree ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m ()
validateStructureofDirtree :: GVariant -> m ()
validateStructureofDirtree GVariant
dirtree = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
dirtree' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
dirtree
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr GVariant -> Ptr (Ptr GError) -> IO CInt
ostree_validate_structureof_dirtree Ptr GVariant
dirtree'
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
dirtree
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
foreign import ccall "ostree_validate_structureof_dirmeta" ostree_validate_structureof_dirmeta ::
Ptr GVariant ->
Ptr (Ptr GError) ->
IO CInt
validateStructureofDirmeta ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m ()
validateStructureofDirmeta :: GVariant -> m ()
validateStructureofDirmeta GVariant
dirmeta = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
dirmeta' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
dirmeta
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr GVariant -> Ptr (Ptr GError) -> IO CInt
ostree_validate_structureof_dirmeta Ptr GVariant
dirmeta'
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
dirmeta
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
foreign import ccall "ostree_validate_structureof_csum_v" ostree_validate_structureof_csum_v ::
Ptr GVariant ->
Ptr (Ptr GError) ->
IO CInt
validateStructureofCsumV ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m ()
validateStructureofCsumV :: GVariant -> m ()
validateStructureofCsumV GVariant
checksum = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
checksum' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
checksum
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr GVariant -> Ptr (Ptr GError) -> IO CInt
ostree_validate_structureof_csum_v Ptr GVariant
checksum'
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
checksum
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
foreign import ccall "ostree_validate_structureof_commit" ostree_validate_structureof_commit ::
Ptr GVariant ->
Ptr (Ptr GError) ->
IO CInt
validateStructureofCommit ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m ()
validateStructureofCommit :: GVariant -> m ()
validateStructureofCommit GVariant
commit = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
commit' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
commit
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr GVariant -> Ptr (Ptr GError) -> IO CInt
ostree_validate_structureof_commit Ptr GVariant
commit'
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
commit
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
foreign import ccall "ostree_validate_structureof_checksum_string" ostree_validate_structureof_checksum_string ::
CString ->
Ptr (Ptr GError) ->
IO CInt
validateStructureofChecksumString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ()
validateStructureofChecksumString :: Text -> m ()
validateStructureofChecksumString Text
checksum = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
CString
checksum' <- Text -> IO CString
textToCString Text
checksum
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CString -> Ptr (Ptr GError) -> IO CInt
ostree_validate_structureof_checksum_string CString
checksum'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
checksum'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
checksum'
)
foreign import ccall "ostree_validate_rev" ostree_validate_rev ::
CString ->
Ptr (Ptr GError) ->
IO CInt
validateRev ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ()
validateRev :: Text -> m ()
validateRev Text
rev = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
CString
rev' <- Text -> IO CString
textToCString Text
rev
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CString -> Ptr (Ptr GError) -> IO CInt
ostree_validate_rev CString
rev'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
rev'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
rev'
)
foreign import ccall "ostree_validate_remote_name" ostree_validate_remote_name ::
CString ->
Ptr (Ptr GError) ->
IO CInt
validateRemoteName ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ()
validateRemoteName :: Text -> m ()
validateRemoteName Text
remoteName = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
CString
remoteName' <- Text -> IO CString
textToCString Text
remoteName
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CString -> Ptr (Ptr GError) -> IO CInt
ostree_validate_remote_name CString
remoteName'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
remoteName'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
remoteName'
)
foreign import ccall "ostree_validate_collection_id" ostree_validate_collection_id ::
CString ->
Ptr (Ptr GError) ->
IO CInt
validateCollectionId ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (T.Text)
-> m ()
validateCollectionId :: Maybe Text -> m ()
validateCollectionId Maybe Text
collectionId = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
CString
maybeCollectionId <- case Maybe Text
collectionId of
Maybe Text
Nothing -> CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
nullPtr
Just Text
jCollectionId -> do
CString
jCollectionId' <- Text -> IO CString
textToCString Text
jCollectionId
CString -> IO CString
forall (m :: * -> *) a. Monad m => a -> m a
return CString
jCollectionId'
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CString -> Ptr (Ptr GError) -> IO CInt
ostree_validate_collection_id CString
maybeCollectionId
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeCollectionId
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeCollectionId
)
foreign import ccall "ostree_validate_checksum_string" ostree_validate_checksum_string ::
CString ->
Ptr (Ptr GError) ->
IO CInt
validateChecksumString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ()
validateChecksumString :: Text -> m ()
validateChecksumString Text
sha256 = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
CString
sha256' <- Text -> IO CString
textToCString Text
sha256
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CString -> Ptr (Ptr GError) -> IO CInt
ostree_validate_checksum_string CString
sha256'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
sha256'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
sha256'
)
foreign import ccall "ostree_raw_file_to_content_stream" ostree_raw_file_to_content_stream ::
Ptr Gio.InputStream.InputStream ->
Ptr Gio.FileInfo.FileInfo ->
Ptr GVariant ->
Ptr (Ptr Gio.InputStream.InputStream) ->
Ptr Word64 ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
rawFileToContentStream ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a, Gio.FileInfo.IsFileInfo b, Gio.Cancellable.IsCancellable c) =>
a
-> b
-> Maybe (GVariant)
-> Maybe (c)
-> m ((Gio.InputStream.InputStream, Word64))
rawFileToContentStream :: a -> b -> Maybe GVariant -> Maybe c -> m (InputStream, Word64)
rawFileToContentStream a
input b
fileInfo Maybe GVariant
xattrs Maybe c
cancellable = IO (InputStream, Word64) -> m (InputStream, Word64)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (InputStream, Word64) -> m (InputStream, Word64))
-> IO (InputStream, Word64) -> m (InputStream, Word64)
forall a b. (a -> b) -> a -> b
$ do
Ptr InputStream
input' <- a -> IO (Ptr InputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
input
Ptr FileInfo
fileInfo' <- b -> IO (Ptr FileInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
fileInfo
Ptr GVariant
maybeXattrs <- case Maybe GVariant
xattrs of
Maybe GVariant
Nothing -> Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
forall a. Ptr a
nullPtr
Just GVariant
jXattrs -> do
Ptr GVariant
jXattrs' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
jXattrs
Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
jXattrs'
Ptr (Ptr InputStream)
outInput <- IO (Ptr (Ptr InputStream))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
Ptr Word64
outLength <- IO (Ptr Word64)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word64)
Ptr Cancellable
maybeCancellable <- case Maybe c
cancellable of
Maybe c
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just c
jCancellable -> do
Ptr Cancellable
jCancellable' <- c -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO (InputStream, Word64) -> IO () -> IO (InputStream, Word64)
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr InputStream
-> Ptr FileInfo
-> Ptr GVariant
-> Ptr (Ptr InputStream)
-> Ptr Word64
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_raw_file_to_content_stream Ptr InputStream
input' Ptr FileInfo
fileInfo' Ptr GVariant
maybeXattrs Ptr (Ptr InputStream)
outInput Ptr Word64
outLength Ptr Cancellable
maybeCancellable
Ptr InputStream
outInput' <- Ptr (Ptr InputStream) -> IO (Ptr InputStream)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr InputStream)
outInput
InputStream
outInput'' <- ((ManagedPtr InputStream -> InputStream)
-> Ptr InputStream -> IO InputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr InputStream -> InputStream
Gio.InputStream.InputStream) Ptr InputStream
outInput'
Word64
outLength' <- Ptr Word64 -> IO Word64
forall a. Storable a => Ptr a -> IO a
peek Ptr Word64
outLength
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
input
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
fileInfo
Maybe GVariant -> (GVariant -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe GVariant
xattrs GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Maybe c -> (c -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe c
cancellable c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
outLength
(InputStream, Word64) -> IO (InputStream, Word64)
forall (m :: * -> *) a. Monad m => a -> m a
return (InputStream
outInput'', Word64
outLength')
) (do
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
outLength
)
foreign import ccall "ostree_raw_file_to_archive_z2_stream_with_options" ostree_raw_file_to_archive_z2_stream_with_options ::
Ptr Gio.InputStream.InputStream ->
Ptr Gio.FileInfo.FileInfo ->
Ptr GVariant ->
Ptr GVariant ->
Ptr (Ptr Gio.InputStream.InputStream) ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
rawFileToArchiveZ2StreamWithOptions ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a, Gio.FileInfo.IsFileInfo b, Gio.Cancellable.IsCancellable c) =>
a
-> b
-> Maybe (GVariant)
-> Maybe (GVariant)
-> Maybe (c)
-> m (Gio.InputStream.InputStream)
rawFileToArchiveZ2StreamWithOptions :: a
-> b
-> Maybe GVariant
-> Maybe GVariant
-> Maybe c
-> m InputStream
rawFileToArchiveZ2StreamWithOptions a
input b
fileInfo Maybe GVariant
xattrs Maybe GVariant
options Maybe c
cancellable = IO InputStream -> m InputStream
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO InputStream -> m InputStream)
-> IO InputStream -> m InputStream
forall a b. (a -> b) -> a -> b
$ do
Ptr InputStream
input' <- a -> IO (Ptr InputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
input
Ptr FileInfo
fileInfo' <- b -> IO (Ptr FileInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
fileInfo
Ptr GVariant
maybeXattrs <- case Maybe GVariant
xattrs of
Maybe GVariant
Nothing -> Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
forall a. Ptr a
nullPtr
Just GVariant
jXattrs -> do
Ptr GVariant
jXattrs' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
jXattrs
Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
jXattrs'
Ptr GVariant
maybeOptions <- case Maybe GVariant
options of
Maybe GVariant
Nothing -> Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
forall a. Ptr a
nullPtr
Just GVariant
jOptions -> do
Ptr GVariant
jOptions' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
jOptions
Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
jOptions'
Ptr (Ptr InputStream)
outInput <- IO (Ptr (Ptr InputStream))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
Ptr Cancellable
maybeCancellable <- case Maybe c
cancellable of
Maybe c
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just c
jCancellable -> do
Ptr Cancellable
jCancellable' <- c -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO InputStream -> IO () -> IO InputStream
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr InputStream
-> Ptr FileInfo
-> Ptr GVariant
-> Ptr GVariant
-> Ptr (Ptr InputStream)
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_raw_file_to_archive_z2_stream_with_options Ptr InputStream
input' Ptr FileInfo
fileInfo' Ptr GVariant
maybeXattrs Ptr GVariant
maybeOptions Ptr (Ptr InputStream)
outInput Ptr Cancellable
maybeCancellable
Ptr InputStream
outInput' <- Ptr (Ptr InputStream) -> IO (Ptr InputStream)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr InputStream)
outInput
InputStream
outInput'' <- ((ManagedPtr InputStream -> InputStream)
-> Ptr InputStream -> IO InputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr InputStream -> InputStream
Gio.InputStream.InputStream) Ptr InputStream
outInput'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
input
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
fileInfo
Maybe GVariant -> (GVariant -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe GVariant
xattrs GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Maybe GVariant -> (GVariant -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe GVariant
options GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Maybe c -> (c -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe c
cancellable c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
InputStream -> IO InputStream
forall (m :: * -> *) a. Monad m => a -> m a
return InputStream
outInput''
) (do
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
)
foreign import ccall "ostree_raw_file_to_archive_z2_stream" ostree_raw_file_to_archive_z2_stream ::
Ptr Gio.InputStream.InputStream ->
Ptr Gio.FileInfo.FileInfo ->
Ptr GVariant ->
Ptr (Ptr Gio.InputStream.InputStream) ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
rawFileToArchiveZ2Stream ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a, Gio.FileInfo.IsFileInfo b, Gio.Cancellable.IsCancellable c) =>
a
-> b
-> Maybe (GVariant)
-> Maybe (c)
-> m (Gio.InputStream.InputStream)
rawFileToArchiveZ2Stream :: a -> b -> Maybe GVariant -> Maybe c -> m InputStream
rawFileToArchiveZ2Stream a
input b
fileInfo Maybe GVariant
xattrs Maybe c
cancellable = IO InputStream -> m InputStream
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO InputStream -> m InputStream)
-> IO InputStream -> m InputStream
forall a b. (a -> b) -> a -> b
$ do
Ptr InputStream
input' <- a -> IO (Ptr InputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
input
Ptr FileInfo
fileInfo' <- b -> IO (Ptr FileInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
fileInfo
Ptr GVariant
maybeXattrs <- case Maybe GVariant
xattrs of
Maybe GVariant
Nothing -> Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
forall a. Ptr a
nullPtr
Just GVariant
jXattrs -> do
Ptr GVariant
jXattrs' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
jXattrs
Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
jXattrs'
Ptr (Ptr InputStream)
outInput <- IO (Ptr (Ptr InputStream))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
Ptr Cancellable
maybeCancellable <- case Maybe c
cancellable of
Maybe c
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just c
jCancellable -> do
Ptr Cancellable
jCancellable' <- c -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO InputStream -> IO () -> IO InputStream
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr InputStream
-> Ptr FileInfo
-> Ptr GVariant
-> Ptr (Ptr InputStream)
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_raw_file_to_archive_z2_stream Ptr InputStream
input' Ptr FileInfo
fileInfo' Ptr GVariant
maybeXattrs Ptr (Ptr InputStream)
outInput Ptr Cancellable
maybeCancellable
Ptr InputStream
outInput' <- Ptr (Ptr InputStream) -> IO (Ptr InputStream)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr InputStream)
outInput
InputStream
outInput'' <- ((ManagedPtr InputStream -> InputStream)
-> Ptr InputStream -> IO InputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr InputStream -> InputStream
Gio.InputStream.InputStream) Ptr InputStream
outInput'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
input
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
fileInfo
Maybe GVariant -> (GVariant -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe GVariant
xattrs GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Maybe c -> (c -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe c
cancellable c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
InputStream -> IO InputStream
forall (m :: * -> *) a. Monad m => a -> m a
return InputStream
outInput''
) (do
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
)
foreign import ccall "ostree_parse_refspec" ostree_parse_refspec ::
CString ->
Ptr CString ->
Ptr CString ->
Ptr (Ptr GError) ->
IO CInt
parseRefspec ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ((Maybe T.Text, T.Text))
parseRefspec :: Text -> m (Maybe Text, Text)
parseRefspec Text
refspec = IO (Maybe Text, Text) -> m (Maybe Text, Text)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text, Text) -> m (Maybe Text, Text))
-> IO (Maybe Text, Text) -> m (Maybe Text, Text)
forall a b. (a -> b) -> a -> b
$ do
CString
refspec' <- Text -> IO CString
textToCString Text
refspec
Ptr CString
outRemote <- IO (Ptr CString)
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr CString)
Ptr CString
outRef <- IO (Ptr CString)
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr CString)
IO (Maybe Text, Text) -> IO () -> IO (Maybe Text, Text)
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CString
-> Ptr CString -> Ptr CString -> Ptr (Ptr GError) -> IO CInt
ostree_parse_refspec CString
refspec' Ptr CString
outRemote Ptr CString
outRef
CString
outRemote' <- Ptr CString -> IO CString
forall a. Storable a => Ptr a -> IO a
peek Ptr CString
outRemote
Maybe Text
maybeOutRemote' <- CString -> (CString -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull CString
outRemote' ((CString -> IO Text) -> IO (Maybe Text))
-> (CString -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \CString
outRemote'' -> do
Text
outRemote''' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
outRemote''
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
outRemote'''
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
outRemote'
CString
outRef' <- Ptr CString -> IO CString
forall a. Storable a => Ptr a -> IO a
peek Ptr CString
outRef
Text
outRef'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
outRef'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
outRef'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
refspec'
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
outRemote
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
outRef
(Maybe Text, Text) -> IO (Maybe Text, Text)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe Text
maybeOutRemote', Text
outRef'')
) (do
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
refspec'
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
outRemote
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
outRef
)
foreign import ccall "ostree_object_type_to_string" ostree_object_type_to_string ::
CUInt ->
IO CString
objectTypeToString ::
(B.CallStack.HasCallStack, MonadIO m) =>
OSTree.Enums.ObjectType
-> m T.Text
objectTypeToString :: ObjectType -> m Text
objectTypeToString ObjectType
objtype = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
let objtype' :: CUInt
objtype' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (ObjectType -> Int) -> ObjectType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ObjectType -> Int
forall a. Enum a => a -> Int
fromEnum) ObjectType
objtype
CString
result <- CUInt -> IO CString
ostree_object_type_to_string CUInt
objtype'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"objectTypeToString" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
foreign import ccall "ostree_object_type_from_string" ostree_object_type_from_string ::
CString ->
IO CUInt
objectTypeFromString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m OSTree.Enums.ObjectType
objectTypeFromString :: Text -> m ObjectType
objectTypeFromString Text
str = IO ObjectType -> m ObjectType
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ObjectType -> m ObjectType) -> IO ObjectType -> m ObjectType
forall a b. (a -> b) -> a -> b
$ do
CString
str' <- Text -> IO CString
textToCString Text
str
CUInt
result <- CString -> IO CUInt
ostree_object_type_from_string CString
str'
let result' :: ObjectType
result' = (Int -> ObjectType
forall a. Enum a => Int -> a
toEnum (Int -> ObjectType) -> (CUInt -> Int) -> CUInt -> ObjectType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
str'
ObjectType -> IO ObjectType
forall (m :: * -> *) a. Monad m => a -> m a
return ObjectType
result'
foreign import ccall "ostree_object_to_string" ostree_object_to_string ::
CString ->
CUInt ->
IO CString
objectToString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> OSTree.Enums.ObjectType
-> m T.Text
objectToString :: Text -> ObjectType -> m Text
objectToString Text
checksum ObjectType
objtype = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
CString
checksum' <- Text -> IO CString
textToCString Text
checksum
let objtype' :: CUInt
objtype' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (ObjectType -> Int) -> ObjectType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ObjectType -> Int
forall a. Enum a => a -> Int
fromEnum) ObjectType
objtype
CString
result <- CString -> CUInt -> IO CString
ostree_object_to_string CString
checksum' CUInt
objtype'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"objectToString" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
checksum'
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
foreign import ccall "ostree_object_name_serialize" ostree_object_name_serialize ::
CString ->
CUInt ->
IO (Ptr GVariant)
objectNameSerialize ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> OSTree.Enums.ObjectType
-> m GVariant
objectNameSerialize :: Text -> ObjectType -> m GVariant
objectNameSerialize Text
checksum ObjectType
objtype = IO GVariant -> m GVariant
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GVariant -> m GVariant) -> IO GVariant -> m GVariant
forall a b. (a -> b) -> a -> b
$ do
CString
checksum' <- Text -> IO CString
textToCString Text
checksum
let objtype' :: CUInt
objtype' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (ObjectType -> Int) -> ObjectType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ObjectType -> Int
forall a. Enum a => a -> Int
fromEnum) ObjectType
objtype
Ptr GVariant
result <- CString -> CUInt -> IO (Ptr GVariant)
ostree_object_name_serialize CString
checksum' CUInt
objtype'
Text -> Ptr GVariant -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"objectNameSerialize" Ptr GVariant
result
GVariant
result' <- Ptr GVariant -> IO GVariant
B.GVariant.newGVariantFromPtr Ptr GVariant
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
checksum'
GVariant -> IO GVariant
forall (m :: * -> *) a. Monad m => a -> m a
return GVariant
result'
foreign import ccall "ostree_object_name_deserialize" ostree_object_name_deserialize ::
Ptr GVariant ->
Ptr CString ->
Ptr CUInt ->
IO ()
objectNameDeserialize ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m ((T.Text, OSTree.Enums.ObjectType))
objectNameDeserialize :: GVariant -> m (Text, ObjectType)
objectNameDeserialize GVariant
variant = IO (Text, ObjectType) -> m (Text, ObjectType)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Text, ObjectType) -> m (Text, ObjectType))
-> IO (Text, ObjectType) -> m (Text, ObjectType)
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
variant' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
variant
Ptr CString
outChecksum <- IO (Ptr CString)
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr CString)
Ptr CUInt
outObjtype <- IO (Ptr CUInt)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr CUInt)
Ptr GVariant -> Ptr CString -> Ptr CUInt -> IO ()
ostree_object_name_deserialize Ptr GVariant
variant' Ptr CString
outChecksum Ptr CUInt
outObjtype
CString
outChecksum' <- Ptr CString -> IO CString
forall a. Storable a => Ptr a -> IO a
peek Ptr CString
outChecksum
Text
outChecksum'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
outChecksum'
CUInt
outObjtype' <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CUInt
outObjtype
let outObjtype'' :: ObjectType
outObjtype'' = (Int -> ObjectType
forall a. Enum a => Int -> a
toEnum (Int -> ObjectType) -> (CUInt -> Int) -> CUInt -> ObjectType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
outObjtype'
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
variant
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
outChecksum
Ptr CUInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CUInt
outObjtype
(Text, ObjectType) -> IO (Text, ObjectType)
forall (m :: * -> *) a. Monad m => a -> m a
return (Text
outChecksum'', ObjectType
outObjtype'')
foreign import ccall "ostree_object_from_string" ostree_object_from_string ::
CString ->
Ptr CString ->
Ptr CUInt ->
IO ()
objectFromString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ((T.Text, OSTree.Enums.ObjectType))
objectFromString :: Text -> m (Text, ObjectType)
objectFromString Text
str = IO (Text, ObjectType) -> m (Text, ObjectType)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Text, ObjectType) -> m (Text, ObjectType))
-> IO (Text, ObjectType) -> m (Text, ObjectType)
forall a b. (a -> b) -> a -> b
$ do
CString
str' <- Text -> IO CString
textToCString Text
str
Ptr CString
outChecksum <- IO (Ptr CString)
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr CString)
Ptr CUInt
outObjtype <- IO (Ptr CUInt)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr CUInt)
CString -> Ptr CString -> Ptr CUInt -> IO ()
ostree_object_from_string CString
str' Ptr CString
outChecksum Ptr CUInt
outObjtype
CString
outChecksum' <- Ptr CString -> IO CString
forall a. Storable a => Ptr a -> IO a
peek Ptr CString
outChecksum
Text
outChecksum'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
outChecksum'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
outChecksum'
CUInt
outObjtype' <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CUInt
outObjtype
let outObjtype'' :: ObjectType
outObjtype'' = (Int -> ObjectType
forall a. Enum a => Int -> a
toEnum (Int -> ObjectType) -> (CUInt -> Int) -> CUInt -> ObjectType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
outObjtype'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
str'
Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
outChecksum
Ptr CUInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CUInt
outObjtype
(Text, ObjectType) -> IO (Text, ObjectType)
forall (m :: * -> *) a. Monad m => a -> m a
return (Text
outChecksum'', ObjectType
outObjtype'')
foreign import ccall "ostree_metadata_variant_type" ostree_metadata_variant_type ::
CUInt ->
IO (Ptr GLib.VariantType.VariantType)
metadataVariantType ::
(B.CallStack.HasCallStack, MonadIO m) =>
OSTree.Enums.ObjectType
-> m GLib.VariantType.VariantType
metadataVariantType :: ObjectType -> m VariantType
metadataVariantType ObjectType
objtype = IO VariantType -> m VariantType
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO VariantType -> m VariantType)
-> IO VariantType -> m VariantType
forall a b. (a -> b) -> a -> b
$ do
let objtype' :: CUInt
objtype' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (ObjectType -> Int) -> ObjectType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ObjectType -> Int
forall a. Enum a => a -> Int
fromEnum) ObjectType
objtype
Ptr VariantType
result <- CUInt -> IO (Ptr VariantType)
ostree_metadata_variant_type CUInt
objtype'
Text -> Ptr VariantType -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"metadataVariantType" Ptr VariantType
result
VariantType
result' <- ((ManagedPtr VariantType -> VariantType)
-> Ptr VariantType -> IO VariantType
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr VariantType -> VariantType
GLib.VariantType.VariantType) Ptr VariantType
result
VariantType -> IO VariantType
forall (m :: * -> *) a. Monad m => a -> m a
return VariantType
result'
foreign import ccall "ostree_hash_object_name" ostree_hash_object_name ::
Ptr () ->
IO Word32
hashObjectName ::
(B.CallStack.HasCallStack, MonadIO m) =>
Ptr ()
-> m Word32
hashObjectName :: Ptr () -> m Word32
hashObjectName Ptr ()
a = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Word32
result <- Ptr () -> IO Word32
ostree_hash_object_name Ptr ()
a
Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
foreign import ccall "ostree_gpg_error_quark" ostree_gpg_error_quark ::
IO Word32
gpgErrorQuark ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Word32
gpgErrorQuark :: m Word32
gpgErrorQuark = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Word32
result <- IO Word32
ostree_gpg_error_quark
Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
foreign import ccall "ostree_diff_print" ostree_diff_print ::
Ptr Gio.File.File ->
Ptr Gio.File.File ->
Ptr (GPtrArray (Ptr OSTree.DiffItem.DiffItem)) ->
Ptr (GPtrArray (Ptr Gio.File.File)) ->
Ptr (GPtrArray (Ptr Gio.File.File)) ->
IO ()
diffPrint ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.File.IsFile b) =>
a
-> b
-> [OSTree.DiffItem.DiffItem]
-> [Gio.File.File]
-> [Gio.File.File]
-> m ()
diffPrint :: a -> b -> [DiffItem] -> [File] -> [File] -> m ()
diffPrint a
a b
b [DiffItem]
modified [File]
removed [File]
added = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr File
a' <- a -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
a
Ptr File
b' <- b -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
b
[Ptr DiffItem]
modified' <- (DiffItem -> IO (Ptr DiffItem)) -> [DiffItem] -> IO [Ptr DiffItem]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM DiffItem -> IO (Ptr DiffItem)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr [DiffItem]
modified
Ptr (GPtrArray (Ptr DiffItem))
modified'' <- [Ptr DiffItem] -> IO (Ptr (GPtrArray (Ptr DiffItem)))
forall a. [Ptr a] -> IO (Ptr (GPtrArray (Ptr a)))
packGPtrArray [Ptr DiffItem]
modified'
[Ptr File]
removed' <- (File -> IO (Ptr File)) -> [File] -> IO [Ptr File]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM File -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr [File]
removed
Ptr (GPtrArray (Ptr File))
removed'' <- [Ptr File] -> IO (Ptr (GPtrArray (Ptr File)))
forall a. [Ptr a] -> IO (Ptr (GPtrArray (Ptr a)))
packGPtrArray [Ptr File]
removed'
[Ptr File]
added' <- (File -> IO (Ptr File)) -> [File] -> IO [Ptr File]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM File -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr [File]
added
Ptr (GPtrArray (Ptr File))
added'' <- [Ptr File] -> IO (Ptr (GPtrArray (Ptr File)))
forall a. [Ptr a] -> IO (Ptr (GPtrArray (Ptr a)))
packGPtrArray [Ptr File]
added'
Ptr File
-> Ptr File
-> Ptr (GPtrArray (Ptr DiffItem))
-> Ptr (GPtrArray (Ptr File))
-> Ptr (GPtrArray (Ptr File))
-> IO ()
ostree_diff_print Ptr File
a' Ptr File
b' Ptr (GPtrArray (Ptr DiffItem))
modified'' Ptr (GPtrArray (Ptr File))
removed'' Ptr (GPtrArray (Ptr File))
added''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
a
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
b
(DiffItem -> IO ()) -> [DiffItem] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ DiffItem -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [DiffItem]
modified
(File -> IO ()) -> [File] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ File -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [File]
removed
(File -> IO ()) -> [File] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ File -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [File]
added
Ptr (GPtrArray (Ptr DiffItem)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr DiffItem))
modified''
Ptr (GPtrArray (Ptr File)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr File))
removed''
Ptr (GPtrArray (Ptr File)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr File))
added''
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
foreign import ccall "ostree_diff_dirs_with_options" ostree_diff_dirs_with_options ::
CUInt ->
Ptr Gio.File.File ->
Ptr Gio.File.File ->
Ptr (GPtrArray (Ptr OSTree.DiffItem.DiffItem)) ->
Ptr (GPtrArray (Ptr Gio.File.File)) ->
Ptr (GPtrArray (Ptr Gio.File.File)) ->
Ptr OSTree.DiffDirsOptions.DiffDirsOptions ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
diffDirsWithOptions ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.File.IsFile b, Gio.Cancellable.IsCancellable c) =>
[OSTree.Flags.DiffFlags]
-> a
-> b
-> [OSTree.DiffItem.DiffItem]
-> [Gio.File.File]
-> [Gio.File.File]
-> Maybe (OSTree.DiffDirsOptions.DiffDirsOptions)
-> Maybe (c)
-> m ()
diffDirsWithOptions :: [DiffFlags]
-> a
-> b
-> [DiffItem]
-> [File]
-> [File]
-> Maybe DiffDirsOptions
-> Maybe c
-> m ()
diffDirsWithOptions [DiffFlags]
flags a
a b
b [DiffItem]
modified [File]
removed [File]
added Maybe DiffDirsOptions
options Maybe c
cancellable = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
let flags' :: CUInt
flags' = [DiffFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [DiffFlags]
flags
Ptr File
a' <- a -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
a
Ptr File
b' <- b -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
b
[Ptr DiffItem]
modified' <- (DiffItem -> IO (Ptr DiffItem)) -> [DiffItem] -> IO [Ptr DiffItem]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM DiffItem -> IO (Ptr DiffItem)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr [DiffItem]
modified
Ptr (GPtrArray (Ptr DiffItem))
modified'' <- [Ptr DiffItem] -> IO (Ptr (GPtrArray (Ptr DiffItem)))
forall a. [Ptr a] -> IO (Ptr (GPtrArray (Ptr a)))
packGPtrArray [Ptr DiffItem]
modified'
[Ptr File]
removed' <- (File -> IO (Ptr File)) -> [File] -> IO [Ptr File]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM File -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr [File]
removed
Ptr (GPtrArray (Ptr File))
removed'' <- [Ptr File] -> IO (Ptr (GPtrArray (Ptr File)))
forall a. [Ptr a] -> IO (Ptr (GPtrArray (Ptr a)))
packGPtrArray [Ptr File]
removed'
[Ptr File]
added' <- (File -> IO (Ptr File)) -> [File] -> IO [Ptr File]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM File -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr [File]
added
Ptr (GPtrArray (Ptr File))
added'' <- [Ptr File] -> IO (Ptr (GPtrArray (Ptr File)))
forall a. [Ptr a] -> IO (Ptr (GPtrArray (Ptr a)))
packGPtrArray [Ptr File]
added'
Ptr DiffDirsOptions
maybeOptions <- case Maybe DiffDirsOptions
options of
Maybe DiffDirsOptions
Nothing -> Ptr DiffDirsOptions -> IO (Ptr DiffDirsOptions)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr DiffDirsOptions
forall a. Ptr a
nullPtr
Just DiffDirsOptions
jOptions -> do
Ptr DiffDirsOptions
jOptions' <- DiffDirsOptions -> IO (Ptr DiffDirsOptions)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr DiffDirsOptions
jOptions
Ptr DiffDirsOptions -> IO (Ptr DiffDirsOptions)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr DiffDirsOptions
jOptions'
Ptr Cancellable
maybeCancellable <- case Maybe c
cancellable of
Maybe c
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just c
jCancellable -> do
Ptr Cancellable
jCancellable' <- c -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CUInt
-> Ptr File
-> Ptr File
-> Ptr (GPtrArray (Ptr DiffItem))
-> Ptr (GPtrArray (Ptr File))
-> Ptr (GPtrArray (Ptr File))
-> Ptr DiffDirsOptions
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_diff_dirs_with_options CUInt
flags' Ptr File
a' Ptr File
b' Ptr (GPtrArray (Ptr DiffItem))
modified'' Ptr (GPtrArray (Ptr File))
removed'' Ptr (GPtrArray (Ptr File))
added'' Ptr DiffDirsOptions
maybeOptions Ptr Cancellable
maybeCancellable
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
a
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
b
(DiffItem -> IO ()) -> [DiffItem] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ DiffItem -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [DiffItem]
modified
(File -> IO ()) -> [File] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ File -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [File]
removed
(File -> IO ()) -> [File] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ File -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [File]
added
Maybe DiffDirsOptions -> (DiffDirsOptions -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe DiffDirsOptions
options DiffDirsOptions -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Maybe c -> (c -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe c
cancellable c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Ptr (GPtrArray (Ptr DiffItem)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr DiffItem))
modified''
Ptr (GPtrArray (Ptr File)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr File))
removed''
Ptr (GPtrArray (Ptr File)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr File))
added''
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
Ptr (GPtrArray (Ptr DiffItem)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr DiffItem))
modified''
Ptr (GPtrArray (Ptr File)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr File))
removed''
Ptr (GPtrArray (Ptr File)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr File))
added''
)
foreign import ccall "ostree_diff_dirs" ostree_diff_dirs ::
CUInt ->
Ptr Gio.File.File ->
Ptr Gio.File.File ->
Ptr (GPtrArray (Ptr OSTree.DiffItem.DiffItem)) ->
Ptr (GPtrArray (Ptr Gio.File.File)) ->
Ptr (GPtrArray (Ptr Gio.File.File)) ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
diffDirs ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.File.IsFile b, Gio.Cancellable.IsCancellable c) =>
[OSTree.Flags.DiffFlags]
-> a
-> b
-> [OSTree.DiffItem.DiffItem]
-> [Gio.File.File]
-> [Gio.File.File]
-> Maybe (c)
-> m ()
diffDirs :: [DiffFlags]
-> a -> b -> [DiffItem] -> [File] -> [File] -> Maybe c -> m ()
diffDirs [DiffFlags]
flags a
a b
b [DiffItem]
modified [File]
removed [File]
added Maybe c
cancellable = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
let flags' :: CUInt
flags' = [DiffFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [DiffFlags]
flags
Ptr File
a' <- a -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
a
Ptr File
b' <- b -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
b
[Ptr DiffItem]
modified' <- (DiffItem -> IO (Ptr DiffItem)) -> [DiffItem] -> IO [Ptr DiffItem]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM DiffItem -> IO (Ptr DiffItem)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr [DiffItem]
modified
Ptr (GPtrArray (Ptr DiffItem))
modified'' <- [Ptr DiffItem] -> IO (Ptr (GPtrArray (Ptr DiffItem)))
forall a. [Ptr a] -> IO (Ptr (GPtrArray (Ptr a)))
packGPtrArray [Ptr DiffItem]
modified'
[Ptr File]
removed' <- (File -> IO (Ptr File)) -> [File] -> IO [Ptr File]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM File -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr [File]
removed
Ptr (GPtrArray (Ptr File))
removed'' <- [Ptr File] -> IO (Ptr (GPtrArray (Ptr File)))
forall a. [Ptr a] -> IO (Ptr (GPtrArray (Ptr a)))
packGPtrArray [Ptr File]
removed'
[Ptr File]
added' <- (File -> IO (Ptr File)) -> [File] -> IO [Ptr File]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM File -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr [File]
added
Ptr (GPtrArray (Ptr File))
added'' <- [Ptr File] -> IO (Ptr (GPtrArray (Ptr File)))
forall a. [Ptr a] -> IO (Ptr (GPtrArray (Ptr a)))
packGPtrArray [Ptr File]
added'
Ptr Cancellable
maybeCancellable <- case Maybe c
cancellable of
Maybe c
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just c
jCancellable -> do
Ptr Cancellable
jCancellable' <- c -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CUInt
-> Ptr File
-> Ptr File
-> Ptr (GPtrArray (Ptr DiffItem))
-> Ptr (GPtrArray (Ptr File))
-> Ptr (GPtrArray (Ptr File))
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_diff_dirs CUInt
flags' Ptr File
a' Ptr File
b' Ptr (GPtrArray (Ptr DiffItem))
modified'' Ptr (GPtrArray (Ptr File))
removed'' Ptr (GPtrArray (Ptr File))
added'' Ptr Cancellable
maybeCancellable
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
a
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
b
(DiffItem -> IO ()) -> [DiffItem] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ DiffItem -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [DiffItem]
modified
(File -> IO ()) -> [File] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ File -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [File]
removed
(File -> IO ()) -> [File] -> IO ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ File -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr [File]
added
Maybe c -> (c -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe c
cancellable c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Ptr (GPtrArray (Ptr DiffItem)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr DiffItem))
modified''
Ptr (GPtrArray (Ptr File)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr File))
removed''
Ptr (GPtrArray (Ptr File)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr File))
added''
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
Ptr (GPtrArray (Ptr DiffItem)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr DiffItem))
modified''
Ptr (GPtrArray (Ptr File)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr File))
removed''
Ptr (GPtrArray (Ptr File)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr File))
added''
)
foreign import ccall "ostree_create_directory_metadata" ostree_create_directory_metadata ::
Ptr Gio.FileInfo.FileInfo ->
Ptr GVariant ->
IO (Ptr GVariant)
createDirectoryMetadata ::
(B.CallStack.HasCallStack, MonadIO m, Gio.FileInfo.IsFileInfo a) =>
a
-> Maybe (GVariant)
-> m GVariant
createDirectoryMetadata :: a -> Maybe GVariant -> m GVariant
createDirectoryMetadata a
dirInfo Maybe GVariant
xattrs = IO GVariant -> m GVariant
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GVariant -> m GVariant) -> IO GVariant -> m GVariant
forall a b. (a -> b) -> a -> b
$ do
Ptr FileInfo
dirInfo' <- a -> IO (Ptr FileInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
dirInfo
Ptr GVariant
maybeXattrs <- case Maybe GVariant
xattrs of
Maybe GVariant
Nothing -> Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
forall a. Ptr a
nullPtr
Just GVariant
jXattrs -> do
Ptr GVariant
jXattrs' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
jXattrs
Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
jXattrs'
Ptr GVariant
result <- Ptr FileInfo -> Ptr GVariant -> IO (Ptr GVariant)
ostree_create_directory_metadata Ptr FileInfo
dirInfo' Ptr GVariant
maybeXattrs
Text -> Ptr GVariant -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"createDirectoryMetadata" Ptr GVariant
result
GVariant
result' <- Ptr GVariant -> IO GVariant
B.GVariant.wrapGVariantPtr Ptr GVariant
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
dirInfo
Maybe GVariant -> (GVariant -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe GVariant
xattrs GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
GVariant -> IO GVariant
forall (m :: * -> *) a. Monad m => a -> m a
return GVariant
result'
foreign import ccall "ostree_content_stream_parse" ostree_content_stream_parse ::
CInt ->
Ptr Gio.InputStream.InputStream ->
Word64 ->
CInt ->
Ptr (Ptr Gio.InputStream.InputStream) ->
Ptr (Ptr Gio.FileInfo.FileInfo) ->
Ptr (Ptr GVariant) ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
contentStreamParse ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a, Gio.Cancellable.IsCancellable b) =>
Bool
-> a
-> Word64
-> Bool
-> Maybe (b)
-> m ((Gio.InputStream.InputStream, Gio.FileInfo.FileInfo, GVariant))
contentStreamParse :: Bool
-> a
-> Word64
-> Bool
-> Maybe b
-> m (InputStream, FileInfo, GVariant)
contentStreamParse Bool
compressed a
input Word64
inputLength Bool
trusted Maybe b
cancellable = IO (InputStream, FileInfo, GVariant)
-> m (InputStream, FileInfo, GVariant)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (InputStream, FileInfo, GVariant)
-> m (InputStream, FileInfo, GVariant))
-> IO (InputStream, FileInfo, GVariant)
-> m (InputStream, FileInfo, GVariant)
forall a b. (a -> b) -> a -> b
$ do
let compressed' :: CInt
compressed' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
compressed
Ptr InputStream
input' <- a -> IO (Ptr InputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
input
let trusted' :: CInt
trusted' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
trusted
Ptr (Ptr InputStream)
outInput <- IO (Ptr (Ptr InputStream))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
Ptr (Ptr FileInfo)
outFileInfo <- IO (Ptr (Ptr FileInfo))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gio.FileInfo.FileInfo))
Ptr (Ptr GVariant)
outXattrs <- IO (Ptr (Ptr GVariant))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr GVariant))
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just b
jCancellable -> do
Ptr Cancellable
jCancellable' <- b -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO (InputStream, FileInfo, GVariant)
-> IO () -> IO (InputStream, FileInfo, GVariant)
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CInt
-> Ptr InputStream
-> Word64
-> CInt
-> Ptr (Ptr InputStream)
-> Ptr (Ptr FileInfo)
-> Ptr (Ptr GVariant)
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_content_stream_parse CInt
compressed' Ptr InputStream
input' Word64
inputLength CInt
trusted' Ptr (Ptr InputStream)
outInput Ptr (Ptr FileInfo)
outFileInfo Ptr (Ptr GVariant)
outXattrs Ptr Cancellable
maybeCancellable
Ptr InputStream
outInput' <- Ptr (Ptr InputStream) -> IO (Ptr InputStream)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr InputStream)
outInput
InputStream
outInput'' <- ((ManagedPtr InputStream -> InputStream)
-> Ptr InputStream -> IO InputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr InputStream -> InputStream
Gio.InputStream.InputStream) Ptr InputStream
outInput'
Ptr FileInfo
outFileInfo' <- Ptr (Ptr FileInfo) -> IO (Ptr FileInfo)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr FileInfo)
outFileInfo
FileInfo
outFileInfo'' <- ((ManagedPtr FileInfo -> FileInfo) -> Ptr FileInfo -> IO FileInfo
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr FileInfo -> FileInfo
Gio.FileInfo.FileInfo) Ptr FileInfo
outFileInfo'
Ptr GVariant
outXattrs' <- Ptr (Ptr GVariant) -> IO (Ptr GVariant)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr GVariant)
outXattrs
GVariant
outXattrs'' <- Ptr GVariant -> IO GVariant
B.GVariant.wrapGVariantPtr Ptr GVariant
outXattrs'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
input
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
cancellable b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
Ptr (Ptr FileInfo) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr FileInfo)
outFileInfo
Ptr (Ptr GVariant) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr GVariant)
outXattrs
(InputStream, FileInfo, GVariant)
-> IO (InputStream, FileInfo, GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return (InputStream
outInput'', FileInfo
outFileInfo'', GVariant
outXattrs'')
) (do
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
Ptr (Ptr FileInfo) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr FileInfo)
outFileInfo
Ptr (Ptr GVariant) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr GVariant)
outXattrs
)
foreign import ccall "ostree_content_file_parse_at" ostree_content_file_parse_at ::
CInt ->
Int32 ->
CString ->
CInt ->
Ptr (Ptr Gio.InputStream.InputStream) ->
Ptr (Ptr Gio.FileInfo.FileInfo) ->
Ptr (Ptr GVariant) ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
contentFileParseAt ::
(B.CallStack.HasCallStack, MonadIO m, Gio.Cancellable.IsCancellable a) =>
Bool
-> Int32
-> T.Text
-> Bool
-> Maybe (a)
-> m ((Gio.InputStream.InputStream, Gio.FileInfo.FileInfo, GVariant))
contentFileParseAt :: Bool
-> Int32
-> Text
-> Bool
-> Maybe a
-> m (InputStream, FileInfo, GVariant)
contentFileParseAt Bool
compressed Int32
parentDfd Text
path Bool
trusted Maybe a
cancellable = IO (InputStream, FileInfo, GVariant)
-> m (InputStream, FileInfo, GVariant)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (InputStream, FileInfo, GVariant)
-> m (InputStream, FileInfo, GVariant))
-> IO (InputStream, FileInfo, GVariant)
-> m (InputStream, FileInfo, GVariant)
forall a b. (a -> b) -> a -> b
$ do
let compressed' :: CInt
compressed' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
compressed
CString
path' <- Text -> IO CString
textToCString Text
path
let trusted' :: CInt
trusted' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
trusted
Ptr (Ptr InputStream)
outInput <- IO (Ptr (Ptr InputStream))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
Ptr (Ptr FileInfo)
outFileInfo <- IO (Ptr (Ptr FileInfo))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gio.FileInfo.FileInfo))
Ptr (Ptr GVariant)
outXattrs <- IO (Ptr (Ptr GVariant))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr GVariant))
Ptr Cancellable
maybeCancellable <- case Maybe a
cancellable of
Maybe a
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just a
jCancellable -> do
Ptr Cancellable
jCancellable' <- a -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO (InputStream, FileInfo, GVariant)
-> IO () -> IO (InputStream, FileInfo, GVariant)
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CInt
-> Int32
-> CString
-> CInt
-> Ptr (Ptr InputStream)
-> Ptr (Ptr FileInfo)
-> Ptr (Ptr GVariant)
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_content_file_parse_at CInt
compressed' Int32
parentDfd CString
path' CInt
trusted' Ptr (Ptr InputStream)
outInput Ptr (Ptr FileInfo)
outFileInfo Ptr (Ptr GVariant)
outXattrs Ptr Cancellable
maybeCancellable
Ptr InputStream
outInput' <- Ptr (Ptr InputStream) -> IO (Ptr InputStream)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr InputStream)
outInput
InputStream
outInput'' <- ((ManagedPtr InputStream -> InputStream)
-> Ptr InputStream -> IO InputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr InputStream -> InputStream
Gio.InputStream.InputStream) Ptr InputStream
outInput'
Ptr FileInfo
outFileInfo' <- Ptr (Ptr FileInfo) -> IO (Ptr FileInfo)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr FileInfo)
outFileInfo
FileInfo
outFileInfo'' <- ((ManagedPtr FileInfo -> FileInfo) -> Ptr FileInfo -> IO FileInfo
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr FileInfo -> FileInfo
Gio.FileInfo.FileInfo) Ptr FileInfo
outFileInfo'
Ptr GVariant
outXattrs' <- Ptr (Ptr GVariant) -> IO (Ptr GVariant)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr GVariant)
outXattrs
GVariant
outXattrs'' <- Ptr GVariant -> IO GVariant
B.GVariant.wrapGVariantPtr Ptr GVariant
outXattrs'
Maybe a -> (a -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe a
cancellable a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
Ptr (Ptr FileInfo) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr FileInfo)
outFileInfo
Ptr (Ptr GVariant) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr GVariant)
outXattrs
(InputStream, FileInfo, GVariant)
-> IO (InputStream, FileInfo, GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return (InputStream
outInput'', FileInfo
outFileInfo'', GVariant
outXattrs'')
) (do
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
Ptr (Ptr FileInfo) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr FileInfo)
outFileInfo
Ptr (Ptr GVariant) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr GVariant)
outXattrs
)
foreign import ccall "ostree_content_file_parse" ostree_content_file_parse ::
CInt ->
Ptr Gio.File.File ->
CInt ->
Ptr (Ptr Gio.InputStream.InputStream) ->
Ptr (Ptr Gio.FileInfo.FileInfo) ->
Ptr (Ptr GVariant) ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
contentFileParse ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.Cancellable.IsCancellable b) =>
Bool
-> a
-> Bool
-> Maybe (b)
-> m ((Gio.InputStream.InputStream, Gio.FileInfo.FileInfo, GVariant))
contentFileParse :: Bool -> a -> Bool -> Maybe b -> m (InputStream, FileInfo, GVariant)
contentFileParse Bool
compressed a
contentPath Bool
trusted Maybe b
cancellable = IO (InputStream, FileInfo, GVariant)
-> m (InputStream, FileInfo, GVariant)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (InputStream, FileInfo, GVariant)
-> m (InputStream, FileInfo, GVariant))
-> IO (InputStream, FileInfo, GVariant)
-> m (InputStream, FileInfo, GVariant)
forall a b. (a -> b) -> a -> b
$ do
let compressed' :: CInt
compressed' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
compressed
Ptr File
contentPath' <- a -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
contentPath
let trusted' :: CInt
trusted' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
trusted
Ptr (Ptr InputStream)
outInput <- IO (Ptr (Ptr InputStream))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
Ptr (Ptr FileInfo)
outFileInfo <- IO (Ptr (Ptr FileInfo))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gio.FileInfo.FileInfo))
Ptr (Ptr GVariant)
outXattrs <- IO (Ptr (Ptr GVariant))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr GVariant))
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just b
jCancellable -> do
Ptr Cancellable
jCancellable' <- b -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO (InputStream, FileInfo, GVariant)
-> IO () -> IO (InputStream, FileInfo, GVariant)
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ CInt
-> Ptr File
-> CInt
-> Ptr (Ptr InputStream)
-> Ptr (Ptr FileInfo)
-> Ptr (Ptr GVariant)
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_content_file_parse CInt
compressed' Ptr File
contentPath' CInt
trusted' Ptr (Ptr InputStream)
outInput Ptr (Ptr FileInfo)
outFileInfo Ptr (Ptr GVariant)
outXattrs Ptr Cancellable
maybeCancellable
Ptr InputStream
outInput' <- Ptr (Ptr InputStream) -> IO (Ptr InputStream)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr InputStream)
outInput
InputStream
outInput'' <- ((ManagedPtr InputStream -> InputStream)
-> Ptr InputStream -> IO InputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr InputStream -> InputStream
Gio.InputStream.InputStream) Ptr InputStream
outInput'
Ptr FileInfo
outFileInfo' <- Ptr (Ptr FileInfo) -> IO (Ptr FileInfo)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr FileInfo)
outFileInfo
FileInfo
outFileInfo'' <- ((ManagedPtr FileInfo -> FileInfo) -> Ptr FileInfo -> IO FileInfo
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr FileInfo -> FileInfo
Gio.FileInfo.FileInfo) Ptr FileInfo
outFileInfo'
Ptr GVariant
outXattrs' <- Ptr (Ptr GVariant) -> IO (Ptr GVariant)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr GVariant)
outXattrs
GVariant
outXattrs'' <- Ptr GVariant -> IO GVariant
B.GVariant.wrapGVariantPtr Ptr GVariant
outXattrs'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
contentPath
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
cancellable b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
Ptr (Ptr FileInfo) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr FileInfo)
outFileInfo
Ptr (Ptr GVariant) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr GVariant)
outXattrs
(InputStream, FileInfo, GVariant)
-> IO (InputStream, FileInfo, GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return (InputStream
outInput'', FileInfo
outFileInfo'', GVariant
outXattrs'')
) (do
Ptr (Ptr InputStream) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr InputStream)
outInput
Ptr (Ptr FileInfo) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr FileInfo)
outFileInfo
Ptr (Ptr GVariant) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr GVariant)
outXattrs
)
foreign import ccall "ostree_commit_get_timestamp" ostree_commit_get_timestamp ::
Ptr GVariant ->
IO Word64
commitGetTimestamp ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m Word64
commitGetTimestamp :: GVariant -> m Word64
commitGetTimestamp GVariant
commitVariant = IO Word64 -> m Word64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
commitVariant' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
commitVariant
Word64
result <- Ptr GVariant -> IO Word64
ostree_commit_get_timestamp Ptr GVariant
commitVariant'
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
commitVariant
Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result
foreign import ccall "ostree_commit_get_parent" ostree_commit_get_parent ::
Ptr GVariant ->
IO CString
commitGetParent ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m T.Text
commitGetParent :: GVariant -> m Text
commitGetParent GVariant
commitVariant = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
commitVariant' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
commitVariant
CString
result <- Ptr GVariant -> IO CString
ostree_commit_get_parent Ptr GVariant
commitVariant'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"commitGetParent" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
commitVariant
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
foreign import ccall "ostree_commit_get_object_sizes" ostree_commit_get_object_sizes ::
Ptr GVariant ->
Ptr (Ptr (GPtrArray (Ptr OSTree.CommitSizesEntry.CommitSizesEntry))) ->
Ptr (Ptr GError) ->
IO CInt
commitGetObjectSizes ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m ([OSTree.CommitSizesEntry.CommitSizesEntry])
commitGetObjectSizes :: GVariant -> m [CommitSizesEntry]
commitGetObjectSizes GVariant
commitVariant = IO [CommitSizesEntry] -> m [CommitSizesEntry]
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [CommitSizesEntry] -> m [CommitSizesEntry])
-> IO [CommitSizesEntry] -> m [CommitSizesEntry]
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
commitVariant' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
commitVariant
Ptr (Ptr (GPtrArray (Ptr CommitSizesEntry)))
outSizesEntries <- IO (Ptr (Ptr (GPtrArray (Ptr CommitSizesEntry))))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr (GPtrArray (Ptr OSTree.CommitSizesEntry.CommitSizesEntry))))
IO [CommitSizesEntry] -> IO () -> IO [CommitSizesEntry]
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr GVariant
-> Ptr (Ptr (GPtrArray (Ptr CommitSizesEntry)))
-> Ptr (Ptr GError)
-> IO CInt
ostree_commit_get_object_sizes Ptr GVariant
commitVariant' Ptr (Ptr (GPtrArray (Ptr CommitSizesEntry)))
outSizesEntries
Ptr (GPtrArray (Ptr CommitSizesEntry))
outSizesEntries' <- Ptr (Ptr (GPtrArray (Ptr CommitSizesEntry)))
-> IO (Ptr (GPtrArray (Ptr CommitSizesEntry)))
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr (GPtrArray (Ptr CommitSizesEntry)))
outSizesEntries
[Ptr CommitSizesEntry]
outSizesEntries'' <- Ptr (GPtrArray (Ptr CommitSizesEntry)) -> IO [Ptr CommitSizesEntry]
forall a. Ptr (GPtrArray (Ptr a)) -> IO [Ptr a]
unpackGPtrArray Ptr (GPtrArray (Ptr CommitSizesEntry))
outSizesEntries'
[CommitSizesEntry]
outSizesEntries''' <- (Ptr CommitSizesEntry -> IO CommitSizesEntry)
-> [Ptr CommitSizesEntry] -> IO [CommitSizesEntry]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM ((ManagedPtr CommitSizesEntry -> CommitSizesEntry)
-> Ptr CommitSizesEntry -> IO CommitSizesEntry
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr CommitSizesEntry -> CommitSizesEntry
OSTree.CommitSizesEntry.CommitSizesEntry) [Ptr CommitSizesEntry]
outSizesEntries''
Ptr (GPtrArray (Ptr CommitSizesEntry)) -> IO ()
forall a. Ptr (GPtrArray a) -> IO ()
unrefPtrArray Ptr (GPtrArray (Ptr CommitSizesEntry))
outSizesEntries'
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
commitVariant
Ptr (Ptr (GPtrArray (Ptr CommitSizesEntry))) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr (GPtrArray (Ptr CommitSizesEntry)))
outSizesEntries
[CommitSizesEntry] -> IO [CommitSizesEntry]
forall (m :: * -> *) a. Monad m => a -> m a
return [CommitSizesEntry]
outSizesEntries'''
) (do
Ptr (Ptr (GPtrArray (Ptr CommitSizesEntry))) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr (GPtrArray (Ptr CommitSizesEntry)))
outSizesEntries
)
foreign import ccall "ostree_commit_get_content_checksum" ostree_commit_get_content_checksum ::
Ptr GVariant ->
IO CString
commitGetContentChecksum ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m (Maybe T.Text)
commitGetContentChecksum :: GVariant -> m (Maybe Text)
commitGetContentChecksum GVariant
commitVariant = IO (Maybe Text) -> m (Maybe Text)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
commitVariant' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
commitVariant
CString
result <- Ptr GVariant -> IO CString
ostree_commit_get_content_checksum Ptr GVariant
commitVariant'
Maybe Text
maybeResult <- CString -> (CString -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull CString
result ((CString -> IO Text) -> IO (Maybe Text))
-> (CString -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \CString
result' -> do
Text
result'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result'
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result''
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
commitVariant
Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
maybeResult
foreign import ccall "ostree_cmp_checksum_bytes" ostree_cmp_checksum_bytes ::
Word8 ->
Word8 ->
IO Int32
cmpChecksumBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
Word8
-> Word8
-> m Int32
cmpChecksumBytes :: Word8 -> Word8 -> m Int32
cmpChecksumBytes Word8
a Word8
b = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Int32
result <- Word8 -> Word8 -> IO Int32
ostree_cmp_checksum_bytes Word8
a Word8
b
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
foreign import ccall "ostree_cmd__private__" ostree_cmd__private__ ::
IO (Ptr OSTree.CmdPrivateVTable.CmdPrivateVTable)
cmd_Private__ ::
(B.CallStack.HasCallStack, MonadIO m) =>
m OSTree.CmdPrivateVTable.CmdPrivateVTable
cmd_Private__ :: m CmdPrivateVTable
cmd_Private__ = IO CmdPrivateVTable -> m CmdPrivateVTable
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CmdPrivateVTable -> m CmdPrivateVTable)
-> IO CmdPrivateVTable -> m CmdPrivateVTable
forall a b. (a -> b) -> a -> b
$ do
Ptr CmdPrivateVTable
result <- IO (Ptr CmdPrivateVTable)
ostree_cmd__private__
Text -> Ptr CmdPrivateVTable -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"cmd_Private__" Ptr CmdPrivateVTable
result
CmdPrivateVTable
result' <- ((ManagedPtr CmdPrivateVTable -> CmdPrivateVTable)
-> Ptr CmdPrivateVTable -> IO CmdPrivateVTable
forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newPtr ManagedPtr CmdPrivateVTable -> CmdPrivateVTable
OSTree.CmdPrivateVTable.CmdPrivateVTable) Ptr CmdPrivateVTable
result
CmdPrivateVTable -> IO CmdPrivateVTable
forall (m :: * -> *) a. Monad m => a -> m a
return CmdPrivateVTable
result'
foreign import ccall "ostree_checksum_to_bytes_v" ostree_checksum_to_bytes_v ::
CString ->
IO (Ptr GVariant)
checksumToBytesV ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m GVariant
checksumToBytesV :: Text -> m GVariant
checksumToBytesV Text
checksum = IO GVariant -> m GVariant
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO GVariant -> m GVariant) -> IO GVariant -> m GVariant
forall a b. (a -> b) -> a -> b
$ do
CString
checksum' <- Text -> IO CString
textToCString Text
checksum
Ptr GVariant
result <- CString -> IO (Ptr GVariant)
ostree_checksum_to_bytes_v CString
checksum'
Text -> Ptr GVariant -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"checksumToBytesV" Ptr GVariant
result
GVariant
result' <- Ptr GVariant -> IO GVariant
B.GVariant.wrapGVariantPtr Ptr GVariant
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
checksum'
GVariant -> IO GVariant
forall (m :: * -> *) a. Monad m => a -> m a
return GVariant
result'
foreign import ccall "ostree_checksum_to_bytes" ostree_checksum_to_bytes ::
CString ->
IO (Ptr Word8)
checksumToBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ByteString
checksumToBytes :: Text -> m ByteString
checksumToBytes Text
checksum = IO ByteString -> m ByteString
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ByteString -> m ByteString) -> IO ByteString -> m ByteString
forall a b. (a -> b) -> a -> b
$ do
CString
checksum' <- Text -> IO CString
textToCString Text
checksum
Ptr Word8
result <- CString -> IO (Ptr Word8)
ostree_checksum_to_bytes CString
checksum'
Text -> Ptr Word8 -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"checksumToBytes" Ptr Word8
result
ByteString
result' <- (Integer -> Ptr Word8 -> IO ByteString
forall a. Integral a => a -> Ptr Word8 -> IO ByteString
unpackByteStringWithLength Integer
32) Ptr Word8
result
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
checksum'
ByteString -> IO ByteString
forall (m :: * -> *) a. Monad m => a -> m a
return ByteString
result'
foreign import ccall "ostree_checksum_inplace_to_bytes" ostree_checksum_inplace_to_bytes ::
CString ->
Word8 ->
IO ()
checksumInplaceToBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> Word8
-> m ()
checksumInplaceToBytes :: Text -> Word8 -> m ()
checksumInplaceToBytes Text
checksum Word8
buf = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
CString
checksum' <- Text -> IO CString
textToCString Text
checksum
CString -> Word8 -> IO ()
ostree_checksum_inplace_to_bytes CString
checksum' Word8
buf
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
checksum'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
foreign import ccall "ostree_checksum_from_bytes_v" ostree_checksum_from_bytes_v ::
Ptr GVariant ->
IO CString
checksumFromBytesV ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m T.Text
checksumFromBytesV :: GVariant -> m Text
checksumFromBytesV GVariant
csumV = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
csumV' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
csumV
CString
result <- Ptr GVariant -> IO CString
ostree_checksum_from_bytes_v Ptr GVariant
csumV'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"checksumFromBytesV" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
csumV
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
foreign import ccall "ostree_checksum_from_bytes" ostree_checksum_from_bytes ::
Ptr Word8 ->
IO CString
checksumFromBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
ByteString
-> m T.Text
checksumFromBytes :: ByteString -> m Text
checksumFromBytes ByteString
csum = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr Word8
csum' <- ByteString -> IO (Ptr Word8)
packByteString ByteString
csum
CString
result <- Ptr Word8 -> IO CString
ostree_checksum_from_bytes Ptr Word8
csum'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"checksumFromBytes" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
csum'
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
foreign import ccall "ostree_checksum_file_from_input" ostree_checksum_file_from_input ::
Ptr Gio.FileInfo.FileInfo ->
Ptr GVariant ->
Ptr Gio.InputStream.InputStream ->
CUInt ->
Ptr (Ptr Word8) ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
checksumFileFromInput ::
(B.CallStack.HasCallStack, MonadIO m, Gio.FileInfo.IsFileInfo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) =>
a
-> Maybe (GVariant)
-> Maybe (b)
-> OSTree.Enums.ObjectType
-> Maybe (c)
-> m (ByteString)
checksumFileFromInput :: a
-> Maybe GVariant
-> Maybe b
-> ObjectType
-> Maybe c
-> m ByteString
checksumFileFromInput a
fileInfo Maybe GVariant
xattrs Maybe b
in_ ObjectType
objtype Maybe c
cancellable = IO ByteString -> m ByteString
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ByteString -> m ByteString) -> IO ByteString -> m ByteString
forall a b. (a -> b) -> a -> b
$ do
Ptr FileInfo
fileInfo' <- a -> IO (Ptr FileInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fileInfo
Ptr GVariant
maybeXattrs <- case Maybe GVariant
xattrs of
Maybe GVariant
Nothing -> Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
forall a. Ptr a
nullPtr
Just GVariant
jXattrs -> do
Ptr GVariant
jXattrs' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
jXattrs
Ptr GVariant -> IO (Ptr GVariant)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr GVariant
jXattrs'
Ptr InputStream
maybeIn_ <- case Maybe b
in_ of
Maybe b
Nothing -> Ptr InputStream -> IO (Ptr InputStream)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr InputStream
forall a. Ptr a
nullPtr
Just b
jIn_ -> do
Ptr InputStream
jIn_' <- b -> IO (Ptr InputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jIn_
Ptr InputStream -> IO (Ptr InputStream)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr InputStream
jIn_'
let objtype' :: CUInt
objtype' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (ObjectType -> Int) -> ObjectType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ObjectType -> Int
forall a. Enum a => a -> Int
fromEnum) ObjectType
objtype
Ptr (Ptr Word8)
outCsum <- IO (Ptr (Ptr Word8))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Word8))
Ptr Cancellable
maybeCancellable <- case Maybe c
cancellable of
Maybe c
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just c
jCancellable -> do
Ptr Cancellable
jCancellable' <- c -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO ByteString -> IO () -> IO ByteString
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr FileInfo
-> Ptr GVariant
-> Ptr InputStream
-> CUInt
-> Ptr (Ptr Word8)
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_checksum_file_from_input Ptr FileInfo
fileInfo' Ptr GVariant
maybeXattrs Ptr InputStream
maybeIn_ CUInt
objtype' Ptr (Ptr Word8)
outCsum Ptr Cancellable
maybeCancellable
Ptr Word8
outCsum' <- Ptr (Ptr Word8) -> IO (Ptr Word8)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr Word8)
outCsum
ByteString
outCsum'' <- (Integer -> Ptr Word8 -> IO ByteString
forall a. Integral a => a -> Ptr Word8 -> IO ByteString
unpackByteStringWithLength Integer
32) Ptr Word8
outCsum'
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
outCsum'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fileInfo
Maybe GVariant -> (GVariant -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe GVariant
xattrs GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
in_ b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Maybe c -> (c -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe c
cancellable c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Ptr (Ptr Word8) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Word8)
outCsum
ByteString -> IO ByteString
forall (m :: * -> *) a. Monad m => a -> m a
return ByteString
outCsum''
) (do
Ptr (Ptr Word8) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Word8)
outCsum
)
foreign import ccall "ostree_checksum_file_at" ostree_checksum_file_at ::
Int32 ->
CString ->
Ptr () ->
CUInt ->
CUInt ->
CString ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
checksumFileAt ::
(B.CallStack.HasCallStack, MonadIO m, Gio.Cancellable.IsCancellable a) =>
Int32
-> T.Text
-> Ptr ()
-> OSTree.Enums.ObjectType
-> [OSTree.Flags.ChecksumFlags]
-> T.Text
-> Maybe (a)
-> m ()
checksumFileAt :: Int32
-> Text
-> Ptr ()
-> ObjectType
-> [ChecksumFlags]
-> Text
-> Maybe a
-> m ()
checksumFileAt Int32
dfd Text
path Ptr ()
stbuf ObjectType
objtype [ChecksumFlags]
flags Text
outChecksum Maybe a
cancellable = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
CString
path' <- Text -> IO CString
textToCString Text
path
let objtype' :: CUInt
objtype' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (ObjectType -> Int) -> ObjectType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ObjectType -> Int
forall a. Enum a => a -> Int
fromEnum) ObjectType
objtype
let flags' :: CUInt
flags' = [ChecksumFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [ChecksumFlags]
flags
CString
outChecksum' <- Text -> IO CString
textToCString Text
outChecksum
Ptr Cancellable
maybeCancellable <- case Maybe a
cancellable of
Maybe a
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just a
jCancellable -> do
Ptr Cancellable
jCancellable' <- a -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Int32
-> CString
-> Ptr ()
-> CUInt
-> CUInt
-> CString
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_checksum_file_at Int32
dfd CString
path' Ptr ()
stbuf CUInt
objtype' CUInt
flags' CString
outChecksum' Ptr Cancellable
maybeCancellable
Maybe a -> (a -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe a
cancellable a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
outChecksum'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
outChecksum'
)
foreign import ccall "ostree_checksum_file_async_finish" ostree_checksum_file_async_finish ::
Ptr Gio.File.File ->
Ptr Gio.AsyncResult.AsyncResult ->
Ptr (Ptr Word8) ->
Ptr (Ptr GError) ->
IO CInt
checksumFileAsyncFinish ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.AsyncResult.IsAsyncResult b) =>
a
-> b
-> m (ByteString)
checksumFileAsyncFinish :: a -> b -> m ByteString
checksumFileAsyncFinish a
f b
result_ = IO ByteString -> m ByteString
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ByteString -> m ByteString) -> IO ByteString -> m ByteString
forall a b. (a -> b) -> a -> b
$ do
Ptr File
f' <- a -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
f
Ptr AsyncResult
result_' <- b -> IO (Ptr AsyncResult)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
result_
Ptr (Ptr Word8)
outCsum <- IO (Ptr (Ptr Word8))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Word8))
IO ByteString -> IO () -> IO ByteString
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr File
-> Ptr AsyncResult
-> Ptr (Ptr Word8)
-> Ptr (Ptr GError)
-> IO CInt
ostree_checksum_file_async_finish Ptr File
f' Ptr AsyncResult
result_' Ptr (Ptr Word8)
outCsum
Ptr Word8
outCsum' <- Ptr (Ptr Word8) -> IO (Ptr Word8)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr Word8)
outCsum
ByteString
outCsum'' <- (Integer -> Ptr Word8 -> IO ByteString
forall a. Integral a => a -> Ptr Word8 -> IO ByteString
unpackByteStringWithLength Integer
32) Ptr Word8
outCsum'
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
outCsum'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
f
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
result_
Ptr (Ptr Word8) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Word8)
outCsum
ByteString -> IO ByteString
forall (m :: * -> *) a. Monad m => a -> m a
return ByteString
outCsum''
) (do
Ptr (Ptr Word8) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Word8)
outCsum
)
foreign import ccall "ostree_checksum_file_async" ostree_checksum_file_async ::
Ptr Gio.File.File ->
CUInt ->
Int32 ->
Ptr Gio.Cancellable.Cancellable ->
FunPtr Gio.Callbacks.C_AsyncReadyCallback ->
Ptr () ->
IO ()
checksumFileAsync ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.Cancellable.IsCancellable b) =>
a
-> OSTree.Enums.ObjectType
-> Int32
-> Maybe (b)
-> Maybe (Gio.Callbacks.AsyncReadyCallback)
-> m ()
checksumFileAsync :: a
-> ObjectType
-> Int32
-> Maybe b
-> Maybe AsyncReadyCallback
-> m ()
checksumFileAsync a
f ObjectType
objtype Int32
ioPriority Maybe b
cancellable Maybe AsyncReadyCallback
callback = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr File
f' <- a -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
f
let objtype' :: CUInt
objtype' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (ObjectType -> Int) -> ObjectType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ObjectType -> Int
forall a. Enum a => a -> Int
fromEnum) ObjectType
objtype
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just b
jCancellable -> do
Ptr Cancellable
jCancellable' <- b -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
FunPtr C_AsyncReadyCallback
maybeCallback <- case Maybe AsyncReadyCallback
callback of
Maybe AsyncReadyCallback
Nothing -> FunPtr C_AsyncReadyCallback -> IO (FunPtr C_AsyncReadyCallback)
forall (m :: * -> *) a. Monad m => a -> m a
return (Ptr Any -> FunPtr C_AsyncReadyCallback
forall a b. Ptr a -> FunPtr b
castPtrToFunPtr Ptr Any
forall a. Ptr a
nullPtr)
Just AsyncReadyCallback
jCallback -> do
Ptr (FunPtr C_AsyncReadyCallback)
ptrcallback <- IO (Ptr (FunPtr C_AsyncReadyCallback))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback))
FunPtr C_AsyncReadyCallback
jCallback' <- C_AsyncReadyCallback -> IO (FunPtr C_AsyncReadyCallback)
Gio.Callbacks.mk_AsyncReadyCallback (Maybe (Ptr (FunPtr C_AsyncReadyCallback))
-> AsyncReadyCallback_WithClosures -> C_AsyncReadyCallback
Gio.Callbacks.wrap_AsyncReadyCallback (Ptr (FunPtr C_AsyncReadyCallback)
-> Maybe (Ptr (FunPtr C_AsyncReadyCallback))
forall a. a -> Maybe a
Just Ptr (FunPtr C_AsyncReadyCallback)
ptrcallback) (AsyncReadyCallback -> AsyncReadyCallback_WithClosures
Gio.Callbacks.drop_closures_AsyncReadyCallback AsyncReadyCallback
jCallback))
Ptr (FunPtr C_AsyncReadyCallback)
-> FunPtr C_AsyncReadyCallback -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr (FunPtr C_AsyncReadyCallback)
ptrcallback FunPtr C_AsyncReadyCallback
jCallback'
FunPtr C_AsyncReadyCallback -> IO (FunPtr C_AsyncReadyCallback)
forall (m :: * -> *) a. Monad m => a -> m a
return FunPtr C_AsyncReadyCallback
jCallback'
let userData :: Ptr a
userData = Ptr a
forall a. Ptr a
nullPtr
Ptr File
-> CUInt
-> Int32
-> Ptr Cancellable
-> FunPtr C_AsyncReadyCallback
-> Ptr ()
-> IO ()
ostree_checksum_file_async Ptr File
f' CUInt
objtype' Int32
ioPriority Ptr Cancellable
maybeCancellable FunPtr C_AsyncReadyCallback
maybeCallback Ptr ()
forall a. Ptr a
userData
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
f
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
cancellable b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
foreign import ccall "ostree_checksum_file" ostree_checksum_file ::
Ptr Gio.File.File ->
CUInt ->
Ptr (Ptr Word8) ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
checksumFile ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.Cancellable.IsCancellable b) =>
a
-> OSTree.Enums.ObjectType
-> Maybe (b)
-> m (ByteString)
checksumFile :: a -> ObjectType -> Maybe b -> m ByteString
checksumFile a
f ObjectType
objtype Maybe b
cancellable = IO ByteString -> m ByteString
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ByteString -> m ByteString) -> IO ByteString -> m ByteString
forall a b. (a -> b) -> a -> b
$ do
Ptr File
f' <- a -> IO (Ptr File)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
f
let objtype' :: CUInt
objtype' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (ObjectType -> Int) -> ObjectType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ObjectType -> Int
forall a. Enum a => a -> Int
fromEnum) ObjectType
objtype
Ptr (Ptr Word8)
outCsum <- IO (Ptr (Ptr Word8))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Word8))
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just b
jCancellable -> do
Ptr Cancellable
jCancellable' <- b -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO ByteString -> IO () -> IO ByteString
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr File
-> CUInt
-> Ptr (Ptr Word8)
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_checksum_file Ptr File
f' CUInt
objtype' Ptr (Ptr Word8)
outCsum Ptr Cancellable
maybeCancellable
Ptr Word8
outCsum' <- Ptr (Ptr Word8) -> IO (Ptr Word8)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr Word8)
outCsum
ByteString
outCsum'' <- (Integer -> Ptr Word8 -> IO ByteString
forall a. Integral a => a -> Ptr Word8 -> IO ByteString
unpackByteStringWithLength Integer
32) Ptr Word8
outCsum'
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
outCsum'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
f
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
cancellable b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Ptr (Ptr Word8) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Word8)
outCsum
ByteString -> IO ByteString
forall (m :: * -> *) a. Monad m => a -> m a
return ByteString
outCsum''
) (do
Ptr (Ptr Word8) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr Word8)
outCsum
)
foreign import ccall "ostree_checksum_bytes_peek_validate" ostree_checksum_bytes_peek_validate ::
Ptr GVariant ->
Ptr (Ptr GError) ->
IO (Ptr Word8)
checksumBytesPeekValidate ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m ByteString
checksumBytesPeekValidate :: GVariant -> m ByteString
checksumBytesPeekValidate GVariant
bytes = IO ByteString -> m ByteString
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ByteString -> m ByteString) -> IO ByteString -> m ByteString
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
bytes' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
bytes
IO ByteString -> IO () -> IO ByteString
forall a b. IO a -> IO b -> IO a
onException (do
Ptr Word8
result <- (Ptr (Ptr GError) -> IO (Ptr Word8)) -> IO (Ptr Word8)
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO (Ptr Word8)) -> IO (Ptr Word8))
-> (Ptr (Ptr GError) -> IO (Ptr Word8)) -> IO (Ptr Word8)
forall a b. (a -> b) -> a -> b
$ Ptr GVariant -> Ptr (Ptr GError) -> IO (Ptr Word8)
ostree_checksum_bytes_peek_validate Ptr GVariant
bytes'
Text -> Ptr Word8 -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"checksumBytesPeekValidate" Ptr Word8
result
ByteString
result' <- (Integer -> Ptr Word8 -> IO ByteString
forall a. Integral a => a -> Ptr Word8 -> IO ByteString
unpackByteStringWithLength Integer
32) Ptr Word8
result
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
bytes
ByteString -> IO ByteString
forall (m :: * -> *) a. Monad m => a -> m a
return ByteString
result'
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
foreign import ccall "ostree_checksum_bytes_peek" ostree_checksum_bytes_peek ::
Ptr GVariant ->
IO (Ptr Word8)
checksumBytesPeek ::
(B.CallStack.HasCallStack, MonadIO m) =>
GVariant
-> m ByteString
checksumBytesPeek :: GVariant -> m ByteString
checksumBytesPeek GVariant
bytes = IO ByteString -> m ByteString
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ByteString -> m ByteString) -> IO ByteString -> m ByteString
forall a b. (a -> b) -> a -> b
$ do
Ptr GVariant
bytes' <- GVariant -> IO (Ptr GVariant)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GVariant
bytes
Ptr Word8
result <- Ptr GVariant -> IO (Ptr Word8)
ostree_checksum_bytes_peek Ptr GVariant
bytes'
Text -> Ptr Word8 -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"checksumBytesPeek" Ptr Word8
result
ByteString
result' <- (Integer -> Ptr Word8 -> IO ByteString
forall a. Integral a => a -> Ptr Word8 -> IO ByteString
unpackByteStringWithLength Integer
32) Ptr Word8
result
GVariant -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GVariant
bytes
ByteString -> IO ByteString
forall (m :: * -> *) a. Monad m => a -> m a
return ByteString
result'
foreign import ccall "ostree_checksum_b64_to_bytes" ostree_checksum_b64_to_bytes ::
CString ->
IO (Ptr Word8)
checksumB64ToBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ByteString
checksumB64ToBytes :: Text -> m ByteString
checksumB64ToBytes Text
checksum = IO ByteString -> m ByteString
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ByteString -> m ByteString) -> IO ByteString -> m ByteString
forall a b. (a -> b) -> a -> b
$ do
CString
checksum' <- Text -> IO CString
textToCString Text
checksum
Ptr Word8
result <- CString -> IO (Ptr Word8)
ostree_checksum_b64_to_bytes CString
checksum'
Text -> Ptr Word8 -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"checksumB64ToBytes" Ptr Word8
result
ByteString
result' <- (Integer -> Ptr Word8 -> IO ByteString
forall a. Integral a => a -> Ptr Word8 -> IO ByteString
unpackByteStringWithLength Integer
32) Ptr Word8
result
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
checksum'
ByteString -> IO ByteString
forall (m :: * -> *) a. Monad m => a -> m a
return ByteString
result'
foreign import ccall "ostree_checksum_b64_from_bytes" ostree_checksum_b64_from_bytes ::
Ptr Word8 ->
IO CString
checksumB64FromBytes ::
(B.CallStack.HasCallStack, MonadIO m) =>
ByteString
-> m T.Text
checksumB64FromBytes :: ByteString -> m Text
checksumB64FromBytes ByteString
csum = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
Ptr Word8
csum' <- ByteString -> IO (Ptr Word8)
packByteString ByteString
csum
CString
result <- Ptr Word8 -> IO CString
ostree_checksum_b64_from_bytes Ptr Word8
csum'
Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"checksumB64FromBytes" CString
result
Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
csum'
Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'
foreign import ccall "ostree_check_version" ostree_check_version ::
Word32 ->
Word32 ->
IO CInt
checkVersion ::
(B.CallStack.HasCallStack, MonadIO m) =>
Word32
-> Word32
-> m Bool
checkVersion :: Word32 -> Word32 -> m Bool
checkVersion Word32
requiredYear Word32
requiredRelease = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
CInt
result <- Word32 -> Word32 -> IO CInt
ostree_check_version Word32
requiredYear Word32
requiredRelease
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
foreign import ccall "ostree_break_hardlink" ostree_break_hardlink ::
Int32 ->
CString ->
CInt ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CInt
breakHardlink ::
(B.CallStack.HasCallStack, MonadIO m, Gio.Cancellable.IsCancellable a) =>
Int32
-> T.Text
-> Bool
-> Maybe (a)
-> m ()
breakHardlink :: Int32 -> Text -> Bool -> Maybe a -> m ()
breakHardlink Int32
dfd Text
path Bool
skipXattrs Maybe a
cancellable = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
CString
path' <- Text -> IO CString
textToCString Text
path
let skipXattrs' :: CInt
skipXattrs' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
skipXattrs
Ptr Cancellable
maybeCancellable <- case Maybe a
cancellable of
Maybe a
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just a
jCancellable -> do
Ptr Cancellable
jCancellable' <- a -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Int32
-> CString
-> CInt
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CInt
ostree_break_hardlink Int32
dfd CString
path' CInt
skipXattrs' Ptr Cancellable
maybeCancellable
Maybe a -> (a -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe a
cancellable a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
)