gi-ostree-1.0.8: GI/OSTree/Objects/Repo.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
/No description available in the introspection data./
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.OSTree.Objects.Repo
(
#if ENABLE_OVERLOADING
RepoListCollectionRefsMethodInfo ,
#endif
#if ENABLE_OVERLOADING
RepoListCommitObjectsStartingWithMethodInfo,
#endif
#if ENABLE_OVERLOADING
RepoListObjectsMethodInfo ,
#endif
#if ENABLE_OVERLOADING
RepoListRefsMethodInfo ,
#endif
#if ENABLE_OVERLOADING
RepoListRefsExtMethodInfo ,
#endif
#if ENABLE_OVERLOADING
RepoRemoteListCollectionRefsMethodInfo ,
#endif
#if ENABLE_OVERLOADING
RepoRemoteListRefsMethodInfo ,
#endif
#if ENABLE_OVERLOADING
RepoTraverseCommitMethodInfo ,
#endif
#if ENABLE_OVERLOADING
RepoTraverseReachableRefsMethodInfo ,
#endif
#if ENABLE_OVERLOADING
RepoTraverseNewParentsMethodInfo ,
#endif
#if ENABLE_OVERLOADING
RepoTraverseNewReachableMethodInfo ,
#endif
-- * Exported types
Repo(..) ,
IsRepo ,
toRepo ,
noRepo ,
-- * Methods
-- ** abortTransaction #method:abortTransaction#
#if ENABLE_OVERLOADING
RepoAbortTransactionMethodInfo ,
#endif
repoAbortTransaction ,
-- ** addGpgSignatureSummary #method:addGpgSignatureSummary#
#if ENABLE_OVERLOADING
RepoAddGpgSignatureSummaryMethodInfo ,
#endif
repoAddGpgSignatureSummary ,
-- ** appendGpgSignature #method:appendGpgSignature#
#if ENABLE_OVERLOADING
RepoAppendGpgSignatureMethodInfo ,
#endif
repoAppendGpgSignature ,
-- ** checkoutAt #method:checkoutAt#
#if ENABLE_OVERLOADING
RepoCheckoutAtMethodInfo ,
#endif
repoCheckoutAt ,
-- ** checkoutGc #method:checkoutGc#
#if ENABLE_OVERLOADING
RepoCheckoutGcMethodInfo ,
#endif
repoCheckoutGc ,
-- ** checkoutTree #method:checkoutTree#
#if ENABLE_OVERLOADING
RepoCheckoutTreeMethodInfo ,
#endif
repoCheckoutTree ,
-- ** commitTransaction #method:commitTransaction#
#if ENABLE_OVERLOADING
RepoCommitTransactionMethodInfo ,
#endif
repoCommitTransaction ,
-- ** copyConfig #method:copyConfig#
#if ENABLE_OVERLOADING
RepoCopyConfigMethodInfo ,
#endif
repoCopyConfig ,
-- ** create #method:create#
#if ENABLE_OVERLOADING
RepoCreateMethodInfo ,
#endif
repoCreate ,
-- ** createAt #method:createAt#
repoCreateAt ,
-- ** deleteObject #method:deleteObject#
#if ENABLE_OVERLOADING
RepoDeleteObjectMethodInfo ,
#endif
repoDeleteObject ,
-- ** equal #method:equal#
#if ENABLE_OVERLOADING
RepoEqualMethodInfo ,
#endif
repoEqual ,
-- ** findRemotesAsync #method:findRemotesAsync#
#if ENABLE_OVERLOADING
RepoFindRemotesAsyncMethodInfo ,
#endif
repoFindRemotesAsync ,
-- ** findRemotesFinish #method:findRemotesFinish#
#if ENABLE_OVERLOADING
RepoFindRemotesFinishMethodInfo ,
#endif
repoFindRemotesFinish ,
-- ** fsckObject #method:fsckObject#
#if ENABLE_OVERLOADING
RepoFsckObjectMethodInfo ,
#endif
repoFsckObject ,
-- ** getBootloader #method:getBootloader#
#if ENABLE_OVERLOADING
RepoGetBootloaderMethodInfo ,
#endif
repoGetBootloader ,
-- ** getCollectionId #method:getCollectionId#
#if ENABLE_OVERLOADING
RepoGetCollectionIdMethodInfo ,
#endif
repoGetCollectionId ,
-- ** getConfig #method:getConfig#
#if ENABLE_OVERLOADING
RepoGetConfigMethodInfo ,
#endif
repoGetConfig ,
-- ** getDefaultRepoFinders #method:getDefaultRepoFinders#
#if ENABLE_OVERLOADING
RepoGetDefaultRepoFindersMethodInfo ,
#endif
repoGetDefaultRepoFinders ,
-- ** getDfd #method:getDfd#
#if ENABLE_OVERLOADING
RepoGetDfdMethodInfo ,
#endif
repoGetDfd ,
-- ** getDisableFsync #method:getDisableFsync#
#if ENABLE_OVERLOADING
RepoGetDisableFsyncMethodInfo ,
#endif
repoGetDisableFsync ,
-- ** getMinFreeSpaceBytes #method:getMinFreeSpaceBytes#
#if ENABLE_OVERLOADING
RepoGetMinFreeSpaceBytesMethodInfo ,
#endif
repoGetMinFreeSpaceBytes ,
-- ** getMode #method:getMode#
#if ENABLE_OVERLOADING
RepoGetModeMethodInfo ,
#endif
repoGetMode ,
-- ** getParent #method:getParent#
#if ENABLE_OVERLOADING
RepoGetParentMethodInfo ,
#endif
repoGetParent ,
-- ** getPath #method:getPath#
#if ENABLE_OVERLOADING
RepoGetPathMethodInfo ,
#endif
repoGetPath ,
-- ** getRemoteBooleanOption #method:getRemoteBooleanOption#
#if ENABLE_OVERLOADING
RepoGetRemoteBooleanOptionMethodInfo ,
#endif
repoGetRemoteBooleanOption ,
-- ** getRemoteListOption #method:getRemoteListOption#
#if ENABLE_OVERLOADING
RepoGetRemoteListOptionMethodInfo ,
#endif
repoGetRemoteListOption ,
-- ** getRemoteOption #method:getRemoteOption#
#if ENABLE_OVERLOADING
RepoGetRemoteOptionMethodInfo ,
#endif
repoGetRemoteOption ,
-- ** gpgVerifyData #method:gpgVerifyData#
#if ENABLE_OVERLOADING
RepoGpgVerifyDataMethodInfo ,
#endif
repoGpgVerifyData ,
-- ** hasObject #method:hasObject#
#if ENABLE_OVERLOADING
RepoHasObjectMethodInfo ,
#endif
repoHasObject ,
-- ** hash #method:hash#
#if ENABLE_OVERLOADING
RepoHashMethodInfo ,
#endif
repoHash ,
-- ** importObjectFrom #method:importObjectFrom#
#if ENABLE_OVERLOADING
RepoImportObjectFromMethodInfo ,
#endif
repoImportObjectFrom ,
-- ** importObjectFromWithTrust #method:importObjectFromWithTrust#
#if ENABLE_OVERLOADING
RepoImportObjectFromWithTrustMethodInfo ,
#endif
repoImportObjectFromWithTrust ,
-- ** isSystem #method:isSystem#
#if ENABLE_OVERLOADING
RepoIsSystemMethodInfo ,
#endif
repoIsSystem ,
-- ** isWritable #method:isWritable#
#if ENABLE_OVERLOADING
RepoIsWritableMethodInfo ,
#endif
repoIsWritable ,
-- ** listStaticDeltaNames #method:listStaticDeltaNames#
#if ENABLE_OVERLOADING
RepoListStaticDeltaNamesMethodInfo ,
#endif
repoListStaticDeltaNames ,
-- ** loadCommit #method:loadCommit#
#if ENABLE_OVERLOADING
RepoLoadCommitMethodInfo ,
#endif
repoLoadCommit ,
-- ** loadFile #method:loadFile#
#if ENABLE_OVERLOADING
RepoLoadFileMethodInfo ,
#endif
repoLoadFile ,
-- ** loadObjectStream #method:loadObjectStream#
#if ENABLE_OVERLOADING
RepoLoadObjectStreamMethodInfo ,
#endif
repoLoadObjectStream ,
-- ** loadVariant #method:loadVariant#
#if ENABLE_OVERLOADING
RepoLoadVariantMethodInfo ,
#endif
repoLoadVariant ,
-- ** loadVariantIfExists #method:loadVariantIfExists#
#if ENABLE_OVERLOADING
RepoLoadVariantIfExistsMethodInfo ,
#endif
repoLoadVariantIfExists ,
-- ** markCommitPartial #method:markCommitPartial#
#if ENABLE_OVERLOADING
RepoMarkCommitPartialMethodInfo ,
#endif
repoMarkCommitPartial ,
-- ** modeFromString #method:modeFromString#
repoModeFromString ,
-- ** new #method:new#
repoNew ,
-- ** newDefault #method:newDefault#
repoNewDefault ,
-- ** newForSysrootPath #method:newForSysrootPath#
repoNewForSysrootPath ,
-- ** open #method:open#
#if ENABLE_OVERLOADING
RepoOpenMethodInfo ,
#endif
repoOpen ,
-- ** openAt #method:openAt#
repoOpenAt ,
-- ** prepareTransaction #method:prepareTransaction#
#if ENABLE_OVERLOADING
RepoPrepareTransactionMethodInfo ,
#endif
repoPrepareTransaction ,
-- ** prune #method:prune#
#if ENABLE_OVERLOADING
RepoPruneMethodInfo ,
#endif
repoPrune ,
-- ** pruneFromReachable #method:pruneFromReachable#
#if ENABLE_OVERLOADING
RepoPruneFromReachableMethodInfo ,
#endif
repoPruneFromReachable ,
-- ** pruneStaticDeltas #method:pruneStaticDeltas#
#if ENABLE_OVERLOADING
RepoPruneStaticDeltasMethodInfo ,
#endif
repoPruneStaticDeltas ,
-- ** pull #method:pull#
#if ENABLE_OVERLOADING
RepoPullMethodInfo ,
#endif
repoPull ,
-- ** pullDefaultConsoleProgressChanged #method:pullDefaultConsoleProgressChanged#
repoPullDefaultConsoleProgressChanged ,
-- ** pullFromRemotesAsync #method:pullFromRemotesAsync#
#if ENABLE_OVERLOADING
RepoPullFromRemotesAsyncMethodInfo ,
#endif
repoPullFromRemotesAsync ,
-- ** pullFromRemotesFinish #method:pullFromRemotesFinish#
#if ENABLE_OVERLOADING
RepoPullFromRemotesFinishMethodInfo ,
#endif
repoPullFromRemotesFinish ,
-- ** pullOneDir #method:pullOneDir#
#if ENABLE_OVERLOADING
RepoPullOneDirMethodInfo ,
#endif
repoPullOneDir ,
-- ** pullWithOptions #method:pullWithOptions#
#if ENABLE_OVERLOADING
RepoPullWithOptionsMethodInfo ,
#endif
repoPullWithOptions ,
-- ** queryObjectStorageSize #method:queryObjectStorageSize#
#if ENABLE_OVERLOADING
RepoQueryObjectStorageSizeMethodInfo ,
#endif
repoQueryObjectStorageSize ,
-- ** readCommit #method:readCommit#
#if ENABLE_OVERLOADING
RepoReadCommitMethodInfo ,
#endif
repoReadCommit ,
-- ** readCommitDetachedMetadata #method:readCommitDetachedMetadata#
#if ENABLE_OVERLOADING
RepoReadCommitDetachedMetadataMethodInfo,
#endif
repoReadCommitDetachedMetadata ,
-- ** regenerateSummary #method:regenerateSummary#
#if ENABLE_OVERLOADING
RepoRegenerateSummaryMethodInfo ,
#endif
repoRegenerateSummary ,
-- ** reloadConfig #method:reloadConfig#
#if ENABLE_OVERLOADING
RepoReloadConfigMethodInfo ,
#endif
repoReloadConfig ,
-- ** remoteAdd #method:remoteAdd#
#if ENABLE_OVERLOADING
RepoRemoteAddMethodInfo ,
#endif
repoRemoteAdd ,
-- ** remoteChange #method:remoteChange#
#if ENABLE_OVERLOADING
RepoRemoteChangeMethodInfo ,
#endif
repoRemoteChange ,
-- ** remoteDelete #method:remoteDelete#
#if ENABLE_OVERLOADING
RepoRemoteDeleteMethodInfo ,
#endif
repoRemoteDelete ,
-- ** remoteFetchSummary #method:remoteFetchSummary#
#if ENABLE_OVERLOADING
RepoRemoteFetchSummaryMethodInfo ,
#endif
repoRemoteFetchSummary ,
-- ** remoteFetchSummaryWithOptions #method:remoteFetchSummaryWithOptions#
#if ENABLE_OVERLOADING
RepoRemoteFetchSummaryWithOptionsMethodInfo,
#endif
repoRemoteFetchSummaryWithOptions ,
-- ** remoteGetGpgVerify #method:remoteGetGpgVerify#
#if ENABLE_OVERLOADING
RepoRemoteGetGpgVerifyMethodInfo ,
#endif
repoRemoteGetGpgVerify ,
-- ** remoteGetGpgVerifySummary #method:remoteGetGpgVerifySummary#
#if ENABLE_OVERLOADING
RepoRemoteGetGpgVerifySummaryMethodInfo ,
#endif
repoRemoteGetGpgVerifySummary ,
-- ** remoteGetUrl #method:remoteGetUrl#
#if ENABLE_OVERLOADING
RepoRemoteGetUrlMethodInfo ,
#endif
repoRemoteGetUrl ,
-- ** remoteGpgImport #method:remoteGpgImport#
#if ENABLE_OVERLOADING
RepoRemoteGpgImportMethodInfo ,
#endif
repoRemoteGpgImport ,
-- ** remoteList #method:remoteList#
#if ENABLE_OVERLOADING
RepoRemoteListMethodInfo ,
#endif
repoRemoteList ,
-- ** resolveCollectionRef #method:resolveCollectionRef#
#if ENABLE_OVERLOADING
RepoResolveCollectionRefMethodInfo ,
#endif
repoResolveCollectionRef ,
-- ** resolveKeyringForCollection #method:resolveKeyringForCollection#
#if ENABLE_OVERLOADING
RepoResolveKeyringForCollectionMethodInfo,
#endif
repoResolveKeyringForCollection ,
-- ** resolveRev #method:resolveRev#
#if ENABLE_OVERLOADING
RepoResolveRevMethodInfo ,
#endif
repoResolveRev ,
-- ** resolveRevExt #method:resolveRevExt#
#if ENABLE_OVERLOADING
RepoResolveRevExtMethodInfo ,
#endif
repoResolveRevExt ,
-- ** scanHardlinks #method:scanHardlinks#
#if ENABLE_OVERLOADING
RepoScanHardlinksMethodInfo ,
#endif
repoScanHardlinks ,
-- ** setAliasRefImmediate #method:setAliasRefImmediate#
#if ENABLE_OVERLOADING
RepoSetAliasRefImmediateMethodInfo ,
#endif
repoSetAliasRefImmediate ,
-- ** setCacheDir #method:setCacheDir#
#if ENABLE_OVERLOADING
RepoSetCacheDirMethodInfo ,
#endif
repoSetCacheDir ,
-- ** setCollectionId #method:setCollectionId#
#if ENABLE_OVERLOADING
RepoSetCollectionIdMethodInfo ,
#endif
repoSetCollectionId ,
-- ** setCollectionRefImmediate #method:setCollectionRefImmediate#
#if ENABLE_OVERLOADING
RepoSetCollectionRefImmediateMethodInfo ,
#endif
repoSetCollectionRefImmediate ,
-- ** setDisableFsync #method:setDisableFsync#
#if ENABLE_OVERLOADING
RepoSetDisableFsyncMethodInfo ,
#endif
repoSetDisableFsync ,
-- ** setRefImmediate #method:setRefImmediate#
#if ENABLE_OVERLOADING
RepoSetRefImmediateMethodInfo ,
#endif
repoSetRefImmediate ,
-- ** signCommit #method:signCommit#
#if ENABLE_OVERLOADING
RepoSignCommitMethodInfo ,
#endif
repoSignCommit ,
-- ** signDelta #method:signDelta#
#if ENABLE_OVERLOADING
RepoSignDeltaMethodInfo ,
#endif
repoSignDelta ,
-- ** staticDeltaExecuteOffline #method:staticDeltaExecuteOffline#
#if ENABLE_OVERLOADING
RepoStaticDeltaExecuteOfflineMethodInfo ,
#endif
repoStaticDeltaExecuteOffline ,
-- ** staticDeltaGenerate #method:staticDeltaGenerate#
#if ENABLE_OVERLOADING
RepoStaticDeltaGenerateMethodInfo ,
#endif
repoStaticDeltaGenerate ,
-- ** transactionSetCollectionRef #method:transactionSetCollectionRef#
#if ENABLE_OVERLOADING
RepoTransactionSetCollectionRefMethodInfo,
#endif
repoTransactionSetCollectionRef ,
-- ** transactionSetRef #method:transactionSetRef#
#if ENABLE_OVERLOADING
RepoTransactionSetRefMethodInfo ,
#endif
repoTransactionSetRef ,
-- ** transactionSetRefspec #method:transactionSetRefspec#
#if ENABLE_OVERLOADING
RepoTransactionSetRefspecMethodInfo ,
#endif
repoTransactionSetRefspec ,
-- ** traverseParentsGetCommits #method:traverseParentsGetCommits#
repoTraverseParentsGetCommits ,
-- ** verifyCommit #method:verifyCommit#
#if ENABLE_OVERLOADING
RepoVerifyCommitMethodInfo ,
#endif
repoVerifyCommit ,
-- ** verifyCommitExt #method:verifyCommitExt#
#if ENABLE_OVERLOADING
RepoVerifyCommitExtMethodInfo ,
#endif
repoVerifyCommitExt ,
-- ** verifyCommitForRemote #method:verifyCommitForRemote#
#if ENABLE_OVERLOADING
RepoVerifyCommitForRemoteMethodInfo ,
#endif
repoVerifyCommitForRemote ,
-- ** verifySummary #method:verifySummary#
#if ENABLE_OVERLOADING
RepoVerifySummaryMethodInfo ,
#endif
repoVerifySummary ,
-- ** writeArchiveToMtree #method:writeArchiveToMtree#
#if ENABLE_OVERLOADING
RepoWriteArchiveToMtreeMethodInfo ,
#endif
repoWriteArchiveToMtree ,
-- ** writeCommit #method:writeCommit#
#if ENABLE_OVERLOADING
RepoWriteCommitMethodInfo ,
#endif
repoWriteCommit ,
-- ** writeCommitDetachedMetadata #method:writeCommitDetachedMetadata#
#if ENABLE_OVERLOADING
RepoWriteCommitDetachedMetadataMethodInfo,
#endif
repoWriteCommitDetachedMetadata ,
-- ** writeCommitWithTime #method:writeCommitWithTime#
#if ENABLE_OVERLOADING
RepoWriteCommitWithTimeMethodInfo ,
#endif
repoWriteCommitWithTime ,
-- ** writeConfig #method:writeConfig#
#if ENABLE_OVERLOADING
RepoWriteConfigMethodInfo ,
#endif
repoWriteConfig ,
-- ** writeContent #method:writeContent#
#if ENABLE_OVERLOADING
RepoWriteContentMethodInfo ,
#endif
repoWriteContent ,
-- ** writeContentAsync #method:writeContentAsync#
#if ENABLE_OVERLOADING
RepoWriteContentAsyncMethodInfo ,
#endif
repoWriteContentAsync ,
-- ** writeContentFinish #method:writeContentFinish#
#if ENABLE_OVERLOADING
RepoWriteContentFinishMethodInfo ,
#endif
repoWriteContentFinish ,
-- ** writeContentTrusted #method:writeContentTrusted#
#if ENABLE_OVERLOADING
RepoWriteContentTrustedMethodInfo ,
#endif
repoWriteContentTrusted ,
-- ** writeDfdToMtree #method:writeDfdToMtree#
#if ENABLE_OVERLOADING
RepoWriteDfdToMtreeMethodInfo ,
#endif
repoWriteDfdToMtree ,
-- ** writeDirectoryToMtree #method:writeDirectoryToMtree#
#if ENABLE_OVERLOADING
RepoWriteDirectoryToMtreeMethodInfo ,
#endif
repoWriteDirectoryToMtree ,
-- ** writeMetadata #method:writeMetadata#
#if ENABLE_OVERLOADING
RepoWriteMetadataMethodInfo ,
#endif
repoWriteMetadata ,
-- ** writeMetadataAsync #method:writeMetadataAsync#
#if ENABLE_OVERLOADING
RepoWriteMetadataAsyncMethodInfo ,
#endif
repoWriteMetadataAsync ,
-- ** writeMetadataFinish #method:writeMetadataFinish#
#if ENABLE_OVERLOADING
RepoWriteMetadataFinishMethodInfo ,
#endif
repoWriteMetadataFinish ,
-- ** writeMetadataStreamTrusted #method:writeMetadataStreamTrusted#
#if ENABLE_OVERLOADING
RepoWriteMetadataStreamTrustedMethodInfo,
#endif
repoWriteMetadataStreamTrusted ,
-- ** writeMetadataTrusted #method:writeMetadataTrusted#
#if ENABLE_OVERLOADING
RepoWriteMetadataTrustedMethodInfo ,
#endif
repoWriteMetadataTrusted ,
-- ** writeMtree #method:writeMtree#
#if ENABLE_OVERLOADING
RepoWriteMtreeMethodInfo ,
#endif
repoWriteMtree ,
-- * Properties
-- ** path #attr:path#
{- | Path to repository. Note that if this repository was created
via @ostree_repo_new_at()@, this value will refer to a value in
the Linux kernel\'s @\/proc\/self\/fd@ directory. Generally, you
should avoid using this property at all; you can gain a reference
to the repository\'s directory fd via @ostree_repo_get_dfd()@ and
use file-descriptor relative operations.
-}
#if ENABLE_OVERLOADING
RepoPathPropertyInfo ,
#endif
constructRepoPath ,
getRepoPath ,
#if ENABLE_OVERLOADING
repoPath ,
#endif
-- ** remotesConfigDir #attr:remotesConfigDir#
{- | Path to directory containing remote definitions. The default is @NULL@.
If a @sysroot-path@ property is defined, this value will default to
@${sysroot_path}\/etc\/ostree\/remotes.d@.
This value will only be used for system repositories.
-}
#if ENABLE_OVERLOADING
RepoRemotesConfigDirPropertyInfo ,
#endif
constructRepoRemotesConfigDir ,
getRepoRemotesConfigDir ,
#if ENABLE_OVERLOADING
repoRemotesConfigDir ,
#endif
-- ** sysrootPath #attr:sysrootPath#
{- | A system using libostree for the host has a \"system\" repository; this
property will be set for repositories referenced via
@ostree_sysroot_repo()@ for example.
You should avoid using this property; if your code is operating
on a system repository, use @OstreeSysroot@ and access the repository
object via @ostree_sysroot_repo()@.
-}
#if ENABLE_OVERLOADING
RepoSysrootPathPropertyInfo ,
#endif
constructRepoSysrootPath ,
getRepoSysrootPath ,
#if ENABLE_OVERLOADING
repoSysrootPath ,
#endif
-- * Signals
-- ** gpgVerifyResult #signal:gpgVerifyResult#
C_RepoGpgVerifyResultCallback ,
RepoGpgVerifyResultCallback ,
#if ENABLE_OVERLOADING
RepoGpgVerifyResultSignalInfo ,
#endif
afterRepoGpgVerifyResult ,
genClosure_RepoGpgVerifyResult ,
mk_RepoGpgVerifyResultCallback ,
noRepoGpgVerifyResultCallback ,
onRepoGpgVerifyResult ,
wrap_RepoGpgVerifyResultCallback ,
) 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.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.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.Bytes as GLib.Bytes
import qualified GI.GLib.Structs.KeyFile as GLib.KeyFile
import qualified GI.GObject.Objects.Object as GObject.Object
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.Interfaces.RepoFinder as OSTree.RepoFinder
import {-# SOURCE #-} qualified GI.OSTree.Objects.AsyncProgress as OSTree.AsyncProgress
import {-# SOURCE #-} qualified GI.OSTree.Objects.GpgVerifyResult as OSTree.GpgVerifyResult
import {-# SOURCE #-} qualified GI.OSTree.Objects.MutableTree as OSTree.MutableTree
import {-# SOURCE #-} qualified GI.OSTree.Objects.RepoFile as OSTree.RepoFile
import {-# SOURCE #-} qualified GI.OSTree.Structs.CollectionRef as OSTree.CollectionRef
import {-# SOURCE #-} qualified GI.OSTree.Structs.Remote as OSTree.Remote
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoCheckoutAtOptions as OSTree.RepoCheckoutAtOptions
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoCommitModifier as OSTree.RepoCommitModifier
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoFinderResult as OSTree.RepoFinderResult
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoPruneOptions as OSTree.RepoPruneOptions
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoTransactionStats as OSTree.RepoTransactionStats
-- | Memory-managed wrapper type.
newtype Repo = Repo (ManagedPtr Repo)
foreign import ccall "ostree_repo_get_type"
c_ostree_repo_get_type :: IO GType
instance GObject Repo where
gobjectType = c_ostree_repo_get_type
-- | Type class for types which can be safely cast to `Repo`, for instance with `toRepo`.
class (GObject o, O.IsDescendantOf Repo o) => IsRepo o
instance (GObject o, O.IsDescendantOf Repo o) => IsRepo o
instance O.HasParentTypes Repo
type instance O.ParentTypes Repo = '[GObject.Object.Object]
-- | Cast to `Repo`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toRepo :: (MonadIO m, IsRepo o) => o -> m Repo
toRepo = liftIO . unsafeCastTo Repo
-- | A convenience alias for `Nothing` :: `Maybe` `Repo`.
noRepo :: Maybe Repo
noRepo = Nothing
#if ENABLE_OVERLOADING
type family ResolveRepoMethod (t :: Symbol) (o :: *) :: * where
ResolveRepoMethod "abortTransaction" o = RepoAbortTransactionMethodInfo
ResolveRepoMethod "addGpgSignatureSummary" o = RepoAddGpgSignatureSummaryMethodInfo
ResolveRepoMethod "appendGpgSignature" o = RepoAppendGpgSignatureMethodInfo
ResolveRepoMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveRepoMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveRepoMethod "checkoutAt" o = RepoCheckoutAtMethodInfo
ResolveRepoMethod "checkoutGc" o = RepoCheckoutGcMethodInfo
ResolveRepoMethod "checkoutTree" o = RepoCheckoutTreeMethodInfo
ResolveRepoMethod "commitTransaction" o = RepoCommitTransactionMethodInfo
ResolveRepoMethod "copyConfig" o = RepoCopyConfigMethodInfo
ResolveRepoMethod "create" o = RepoCreateMethodInfo
ResolveRepoMethod "deleteObject" o = RepoDeleteObjectMethodInfo
ResolveRepoMethod "equal" o = RepoEqualMethodInfo
ResolveRepoMethod "findRemotesAsync" o = RepoFindRemotesAsyncMethodInfo
ResolveRepoMethod "findRemotesFinish" o = RepoFindRemotesFinishMethodInfo
ResolveRepoMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveRepoMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveRepoMethod "fsckObject" o = RepoFsckObjectMethodInfo
ResolveRepoMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveRepoMethod "gpgVerifyData" o = RepoGpgVerifyDataMethodInfo
ResolveRepoMethod "hasObject" o = RepoHasObjectMethodInfo
ResolveRepoMethod "hash" o = RepoHashMethodInfo
ResolveRepoMethod "importObjectFrom" o = RepoImportObjectFromMethodInfo
ResolveRepoMethod "importObjectFromWithTrust" o = RepoImportObjectFromWithTrustMethodInfo
ResolveRepoMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveRepoMethod "isSystem" o = RepoIsSystemMethodInfo
ResolveRepoMethod "isWritable" o = RepoIsWritableMethodInfo
ResolveRepoMethod "listCollectionRefs" o = RepoListCollectionRefsMethodInfo
ResolveRepoMethod "listCommitObjectsStartingWith" o = RepoListCommitObjectsStartingWithMethodInfo
ResolveRepoMethod "listObjects" o = RepoListObjectsMethodInfo
ResolveRepoMethod "listRefs" o = RepoListRefsMethodInfo
ResolveRepoMethod "listRefsExt" o = RepoListRefsExtMethodInfo
ResolveRepoMethod "listStaticDeltaNames" o = RepoListStaticDeltaNamesMethodInfo
ResolveRepoMethod "loadCommit" o = RepoLoadCommitMethodInfo
ResolveRepoMethod "loadFile" o = RepoLoadFileMethodInfo
ResolveRepoMethod "loadObjectStream" o = RepoLoadObjectStreamMethodInfo
ResolveRepoMethod "loadVariant" o = RepoLoadVariantMethodInfo
ResolveRepoMethod "loadVariantIfExists" o = RepoLoadVariantIfExistsMethodInfo
ResolveRepoMethod "markCommitPartial" o = RepoMarkCommitPartialMethodInfo
ResolveRepoMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveRepoMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveRepoMethod "open" o = RepoOpenMethodInfo
ResolveRepoMethod "prepareTransaction" o = RepoPrepareTransactionMethodInfo
ResolveRepoMethod "prune" o = RepoPruneMethodInfo
ResolveRepoMethod "pruneFromReachable" o = RepoPruneFromReachableMethodInfo
ResolveRepoMethod "pruneStaticDeltas" o = RepoPruneStaticDeltasMethodInfo
ResolveRepoMethod "pull" o = RepoPullMethodInfo
ResolveRepoMethod "pullFromRemotesAsync" o = RepoPullFromRemotesAsyncMethodInfo
ResolveRepoMethod "pullFromRemotesFinish" o = RepoPullFromRemotesFinishMethodInfo
ResolveRepoMethod "pullOneDir" o = RepoPullOneDirMethodInfo
ResolveRepoMethod "pullWithOptions" o = RepoPullWithOptionsMethodInfo
ResolveRepoMethod "queryObjectStorageSize" o = RepoQueryObjectStorageSizeMethodInfo
ResolveRepoMethod "readCommit" o = RepoReadCommitMethodInfo
ResolveRepoMethod "readCommitDetachedMetadata" o = RepoReadCommitDetachedMetadataMethodInfo
ResolveRepoMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveRepoMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveRepoMethod "regenerateSummary" o = RepoRegenerateSummaryMethodInfo
ResolveRepoMethod "reloadConfig" o = RepoReloadConfigMethodInfo
ResolveRepoMethod "remoteAdd" o = RepoRemoteAddMethodInfo
ResolveRepoMethod "remoteChange" o = RepoRemoteChangeMethodInfo
ResolveRepoMethod "remoteDelete" o = RepoRemoteDeleteMethodInfo
ResolveRepoMethod "remoteFetchSummary" o = RepoRemoteFetchSummaryMethodInfo
ResolveRepoMethod "remoteFetchSummaryWithOptions" o = RepoRemoteFetchSummaryWithOptionsMethodInfo
ResolveRepoMethod "remoteGetGpgVerify" o = RepoRemoteGetGpgVerifyMethodInfo
ResolveRepoMethod "remoteGetGpgVerifySummary" o = RepoRemoteGetGpgVerifySummaryMethodInfo
ResolveRepoMethod "remoteGetUrl" o = RepoRemoteGetUrlMethodInfo
ResolveRepoMethod "remoteGpgImport" o = RepoRemoteGpgImportMethodInfo
ResolveRepoMethod "remoteList" o = RepoRemoteListMethodInfo
ResolveRepoMethod "remoteListCollectionRefs" o = RepoRemoteListCollectionRefsMethodInfo
ResolveRepoMethod "remoteListRefs" o = RepoRemoteListRefsMethodInfo
ResolveRepoMethod "resolveCollectionRef" o = RepoResolveCollectionRefMethodInfo
ResolveRepoMethod "resolveKeyringForCollection" o = RepoResolveKeyringForCollectionMethodInfo
ResolveRepoMethod "resolveRev" o = RepoResolveRevMethodInfo
ResolveRepoMethod "resolveRevExt" o = RepoResolveRevExtMethodInfo
ResolveRepoMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveRepoMethod "scanHardlinks" o = RepoScanHardlinksMethodInfo
ResolveRepoMethod "signCommit" o = RepoSignCommitMethodInfo
ResolveRepoMethod "signDelta" o = RepoSignDeltaMethodInfo
ResolveRepoMethod "staticDeltaExecuteOffline" o = RepoStaticDeltaExecuteOfflineMethodInfo
ResolveRepoMethod "staticDeltaGenerate" o = RepoStaticDeltaGenerateMethodInfo
ResolveRepoMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveRepoMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveRepoMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveRepoMethod "transactionSetCollectionRef" o = RepoTransactionSetCollectionRefMethodInfo
ResolveRepoMethod "transactionSetRef" o = RepoTransactionSetRefMethodInfo
ResolveRepoMethod "transactionSetRefspec" o = RepoTransactionSetRefspecMethodInfo
ResolveRepoMethod "traverseCommit" o = RepoTraverseCommitMethodInfo
ResolveRepoMethod "traverseReachableRefs" o = RepoTraverseReachableRefsMethodInfo
ResolveRepoMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveRepoMethod "verifyCommit" o = RepoVerifyCommitMethodInfo
ResolveRepoMethod "verifyCommitExt" o = RepoVerifyCommitExtMethodInfo
ResolveRepoMethod "verifyCommitForRemote" o = RepoVerifyCommitForRemoteMethodInfo
ResolveRepoMethod "verifySummary" o = RepoVerifySummaryMethodInfo
ResolveRepoMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveRepoMethod "writeArchiveToMtree" o = RepoWriteArchiveToMtreeMethodInfo
ResolveRepoMethod "writeCommit" o = RepoWriteCommitMethodInfo
ResolveRepoMethod "writeCommitDetachedMetadata" o = RepoWriteCommitDetachedMetadataMethodInfo
ResolveRepoMethod "writeCommitWithTime" o = RepoWriteCommitWithTimeMethodInfo
ResolveRepoMethod "writeConfig" o = RepoWriteConfigMethodInfo
ResolveRepoMethod "writeContent" o = RepoWriteContentMethodInfo
ResolveRepoMethod "writeContentAsync" o = RepoWriteContentAsyncMethodInfo
ResolveRepoMethod "writeContentFinish" o = RepoWriteContentFinishMethodInfo
ResolveRepoMethod "writeContentTrusted" o = RepoWriteContentTrustedMethodInfo
ResolveRepoMethod "writeDfdToMtree" o = RepoWriteDfdToMtreeMethodInfo
ResolveRepoMethod "writeDirectoryToMtree" o = RepoWriteDirectoryToMtreeMethodInfo
ResolveRepoMethod "writeMetadata" o = RepoWriteMetadataMethodInfo
ResolveRepoMethod "writeMetadataAsync" o = RepoWriteMetadataAsyncMethodInfo
ResolveRepoMethod "writeMetadataFinish" o = RepoWriteMetadataFinishMethodInfo
ResolveRepoMethod "writeMetadataStreamTrusted" o = RepoWriteMetadataStreamTrustedMethodInfo
ResolveRepoMethod "writeMetadataTrusted" o = RepoWriteMetadataTrustedMethodInfo
ResolveRepoMethod "writeMtree" o = RepoWriteMtreeMethodInfo
ResolveRepoMethod "getBootloader" o = RepoGetBootloaderMethodInfo
ResolveRepoMethod "getCollectionId" o = RepoGetCollectionIdMethodInfo
ResolveRepoMethod "getConfig" o = RepoGetConfigMethodInfo
ResolveRepoMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveRepoMethod "getDefaultRepoFinders" o = RepoGetDefaultRepoFindersMethodInfo
ResolveRepoMethod "getDfd" o = RepoGetDfdMethodInfo
ResolveRepoMethod "getDisableFsync" o = RepoGetDisableFsyncMethodInfo
ResolveRepoMethod "getMinFreeSpaceBytes" o = RepoGetMinFreeSpaceBytesMethodInfo
ResolveRepoMethod "getMode" o = RepoGetModeMethodInfo
ResolveRepoMethod "getParent" o = RepoGetParentMethodInfo
ResolveRepoMethod "getPath" o = RepoGetPathMethodInfo
ResolveRepoMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveRepoMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveRepoMethod "getRemoteBooleanOption" o = RepoGetRemoteBooleanOptionMethodInfo
ResolveRepoMethod "getRemoteListOption" o = RepoGetRemoteListOptionMethodInfo
ResolveRepoMethod "getRemoteOption" o = RepoGetRemoteOptionMethodInfo
ResolveRepoMethod "setAliasRefImmediate" o = RepoSetAliasRefImmediateMethodInfo
ResolveRepoMethod "setCacheDir" o = RepoSetCacheDirMethodInfo
ResolveRepoMethod "setCollectionId" o = RepoSetCollectionIdMethodInfo
ResolveRepoMethod "setCollectionRefImmediate" o = RepoSetCollectionRefImmediateMethodInfo
ResolveRepoMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveRepoMethod "setDisableFsync" o = RepoSetDisableFsyncMethodInfo
ResolveRepoMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveRepoMethod "setRefImmediate" o = RepoSetRefImmediateMethodInfo
ResolveRepoMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveRepoMethod t Repo, O.MethodInfo info Repo p) => OL.IsLabel t (Repo -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
-- signal Repo::gpg-verify-result
{- |
Emitted during a pull operation upon GPG verification (if enabled).
Applications can connect to this signal to output the verification
results if desired.
The signal will be emitted from whichever 'GI.GLib.Structs.MainContext.MainContext' is the
thread-default at the point when 'GI.OSTree.Objects.Repo.repoPullWithOptions'
is called.
-}
type RepoGpgVerifyResultCallback =
T.Text
{- ^ /@checksum@/: checksum of the signed object -}
-> OSTree.GpgVerifyResult.GpgVerifyResult
{- ^ /@result@/: an 'GI.OSTree.Objects.GpgVerifyResult.GpgVerifyResult' -}
-> IO ()
-- | A convenience synonym for @`Nothing` :: `Maybe` `RepoGpgVerifyResultCallback`@.
noRepoGpgVerifyResultCallback :: Maybe RepoGpgVerifyResultCallback
noRepoGpgVerifyResultCallback = Nothing
-- | Type for the callback on the (unwrapped) C side.
type C_RepoGpgVerifyResultCallback =
Ptr () -> -- object
CString ->
Ptr OSTree.GpgVerifyResult.GpgVerifyResult ->
Ptr () -> -- user_data
IO ()
-- | Generate a function pointer callable from C code, from a `C_RepoGpgVerifyResultCallback`.
foreign import ccall "wrapper"
mk_RepoGpgVerifyResultCallback :: C_RepoGpgVerifyResultCallback -> IO (FunPtr C_RepoGpgVerifyResultCallback)
-- | Wrap the callback into a `GClosure`.
genClosure_RepoGpgVerifyResult :: MonadIO m => RepoGpgVerifyResultCallback -> m (GClosure C_RepoGpgVerifyResultCallback)
genClosure_RepoGpgVerifyResult cb = liftIO $ do
let cb' = wrap_RepoGpgVerifyResultCallback cb
mk_RepoGpgVerifyResultCallback cb' >>= B.GClosure.newGClosure
-- | Wrap a `RepoGpgVerifyResultCallback` into a `C_RepoGpgVerifyResultCallback`.
wrap_RepoGpgVerifyResultCallback ::
RepoGpgVerifyResultCallback ->
C_RepoGpgVerifyResultCallback
wrap_RepoGpgVerifyResultCallback _cb _ checksum result_ _ = do
checksum' <- cstringToText checksum
result_' <- (newObject OSTree.GpgVerifyResult.GpgVerifyResult) result_
_cb checksum' result_'
{- |
Connect a signal handler for the “@gpg-verify-result@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Signals.on' repo #gpgVerifyResult callback
@
-}
onRepoGpgVerifyResult :: (IsRepo a, MonadIO m) => a -> RepoGpgVerifyResultCallback -> m SignalHandlerId
onRepoGpgVerifyResult obj cb = liftIO $ do
let cb' = wrap_RepoGpgVerifyResultCallback cb
cb'' <- mk_RepoGpgVerifyResultCallback cb'
connectSignalFunPtr obj "gpg-verify-result" cb'' SignalConnectBefore
{- |
Connect a signal handler for the “@gpg-verify-result@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Signals.after' repo #gpgVerifyResult callback
@
-}
afterRepoGpgVerifyResult :: (IsRepo a, MonadIO m) => a -> RepoGpgVerifyResultCallback -> m SignalHandlerId
afterRepoGpgVerifyResult obj cb = liftIO $ do
let cb' = wrap_RepoGpgVerifyResultCallback cb
cb'' <- mk_RepoGpgVerifyResultCallback cb'
connectSignalFunPtr obj "gpg-verify-result" cb'' SignalConnectAfter
-- VVV Prop "path"
-- Type: TInterface (Name {namespace = "Gio", name = "File"})
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-- Nullable: (Just False,Nothing)
{- |
Get the value of the “@path@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' repo #path
@
-}
getRepoPath :: (MonadIO m, IsRepo o) => o -> m Gio.File.File
getRepoPath obj = liftIO $ checkUnexpectedNothing "getRepoPath" $ B.Properties.getObjectPropertyObject obj "path" Gio.File.File
{- |
Construct a `GValueConstruct` with valid value for the “@path@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructRepoPath :: (IsRepo o, Gio.File.IsFile a) => a -> IO (GValueConstruct o)
constructRepoPath val = B.Properties.constructObjectPropertyObject "path" (Just val)
#if ENABLE_OVERLOADING
data RepoPathPropertyInfo
instance AttrInfo RepoPathPropertyInfo where
type AttrAllowedOps RepoPathPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint RepoPathPropertyInfo = Gio.File.IsFile
type AttrBaseTypeConstraint RepoPathPropertyInfo = IsRepo
type AttrGetType RepoPathPropertyInfo = Gio.File.File
type AttrLabel RepoPathPropertyInfo = "path"
type AttrOrigin RepoPathPropertyInfo = Repo
attrGet _ = getRepoPath
attrSet _ = undefined
attrConstruct _ = constructRepoPath
attrClear _ = undefined
#endif
-- VVV Prop "remotes-config-dir"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-- Nullable: (Nothing,Nothing)
{- |
Get the value of the “@remotes-config-dir@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' repo #remotesConfigDir
@
-}
getRepoRemotesConfigDir :: (MonadIO m, IsRepo o) => o -> m (Maybe T.Text)
getRepoRemotesConfigDir obj = liftIO $ B.Properties.getObjectPropertyString obj "remotes-config-dir"
{- |
Construct a `GValueConstruct` with valid value for the “@remotes-config-dir@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructRepoRemotesConfigDir :: (IsRepo o) => T.Text -> IO (GValueConstruct o)
constructRepoRemotesConfigDir val = B.Properties.constructObjectPropertyString "remotes-config-dir" (Just val)
#if ENABLE_OVERLOADING
data RepoRemotesConfigDirPropertyInfo
instance AttrInfo RepoRemotesConfigDirPropertyInfo where
type AttrAllowedOps RepoRemotesConfigDirPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint RepoRemotesConfigDirPropertyInfo = (~) T.Text
type AttrBaseTypeConstraint RepoRemotesConfigDirPropertyInfo = IsRepo
type AttrGetType RepoRemotesConfigDirPropertyInfo = (Maybe T.Text)
type AttrLabel RepoRemotesConfigDirPropertyInfo = "remotes-config-dir"
type AttrOrigin RepoRemotesConfigDirPropertyInfo = Repo
attrGet _ = getRepoRemotesConfigDir
attrSet _ = undefined
attrConstruct _ = constructRepoRemotesConfigDir
attrClear _ = undefined
#endif
-- VVV Prop "sysroot-path"
-- Type: TInterface (Name {namespace = "Gio", name = "File"})
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-- Nullable: (Nothing,Nothing)
{- |
Get the value of the “@sysroot-path@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' repo #sysrootPath
@
-}
getRepoSysrootPath :: (MonadIO m, IsRepo o) => o -> m (Maybe Gio.File.File)
getRepoSysrootPath obj = liftIO $ B.Properties.getObjectPropertyObject obj "sysroot-path" Gio.File.File
{- |
Construct a `GValueConstruct` with valid value for the “@sysroot-path@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructRepoSysrootPath :: (IsRepo o, Gio.File.IsFile a) => a -> IO (GValueConstruct o)
constructRepoSysrootPath val = B.Properties.constructObjectPropertyObject "sysroot-path" (Just val)
#if ENABLE_OVERLOADING
data RepoSysrootPathPropertyInfo
instance AttrInfo RepoSysrootPathPropertyInfo where
type AttrAllowedOps RepoSysrootPathPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint RepoSysrootPathPropertyInfo = Gio.File.IsFile
type AttrBaseTypeConstraint RepoSysrootPathPropertyInfo = IsRepo
type AttrGetType RepoSysrootPathPropertyInfo = (Maybe Gio.File.File)
type AttrLabel RepoSysrootPathPropertyInfo = "sysroot-path"
type AttrOrigin RepoSysrootPathPropertyInfo = Repo
attrGet _ = getRepoSysrootPath
attrSet _ = undefined
attrConstruct _ = constructRepoSysrootPath
attrClear _ = undefined
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList Repo
type instance O.AttributeList Repo = RepoAttributeList
type RepoAttributeList = ('[ '("path", RepoPathPropertyInfo), '("remotesConfigDir", RepoRemotesConfigDirPropertyInfo), '("sysrootPath", RepoSysrootPathPropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
repoPath :: AttrLabelProxy "path"
repoPath = AttrLabelProxy
repoRemotesConfigDir :: AttrLabelProxy "remotesConfigDir"
repoRemotesConfigDir = AttrLabelProxy
repoSysrootPath :: AttrLabelProxy "sysrootPath"
repoSysrootPath = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
data RepoGpgVerifyResultSignalInfo
instance SignalInfo RepoGpgVerifyResultSignalInfo where
type HaskellCallbackType RepoGpgVerifyResultSignalInfo = RepoGpgVerifyResultCallback
connectSignal _ obj cb connectMode = do
let cb' = wrap_RepoGpgVerifyResultCallback cb
cb'' <- mk_RepoGpgVerifyResultCallback cb'
connectSignalFunPtr obj "gpg-verify-result" cb'' connectMode
type instance O.SignalList Repo = RepoSignalList
type RepoSignalList = ('[ '("gpgVerifyResult", RepoGpgVerifyResultSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
-- method Repo::new
-- method type : Constructor
-- Args : [Arg {argCName = "path", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Path to a repository", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "Repo"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_new" ostree_repo_new ::
Ptr Gio.File.File -> -- path : TInterface (Name {namespace = "Gio", name = "File"})
IO (Ptr Repo)
{- |
/No description available in the introspection data./
-}
repoNew ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a) =>
a
{- ^ /@path@/: Path to a repository -}
-> m Repo
{- ^ __Returns:__ An accessor object for an OSTree repository located at /@path@/ -}
repoNew path = liftIO $ do
path' <- unsafeManagedPtrCastPtr path
result <- ostree_repo_new path'
checkUnexpectedReturnNULL "repoNew" result
result' <- (wrapObject Repo) result
touchManagedPtr path
return result'
#if ENABLE_OVERLOADING
#endif
-- method Repo::new_default
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "Repo"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_new_default" ostree_repo_new_default ::
IO (Ptr Repo)
{- |
If the current working directory appears to be an OSTree
repository, create a new 'GI.OSTree.Objects.Repo.Repo' object for accessing it.
Otherwise use the path in the OSTREE_REPO environment variable
(if defined) or else the default system repository located at
\/ostree\/repo.
-}
repoNewDefault ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Repo
{- ^ __Returns:__ An accessor object for an OSTree repository located at \/ostree\/repo -}
repoNewDefault = liftIO $ do
result <- ostree_repo_new_default
checkUnexpectedReturnNULL "repoNewDefault" result
result' <- (wrapObject Repo) result
return result'
#if ENABLE_OVERLOADING
#endif
-- method Repo::new_for_sysroot_path
-- method type : Constructor
-- Args : [Arg {argCName = "repo_path", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Path to a repository", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sysroot_path", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Path to the system root", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "Repo"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_new_for_sysroot_path" ostree_repo_new_for_sysroot_path ::
Ptr Gio.File.File -> -- repo_path : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.File.File -> -- sysroot_path : TInterface (Name {namespace = "Gio", name = "File"})
IO (Ptr Repo)
{- |
Creates a new 'GI.OSTree.Objects.Repo.Repo' instance, taking the system root path explicitly
instead of assuming \"\/\".
-}
repoNewForSysrootPath ::
(B.CallStack.HasCallStack, MonadIO m, Gio.File.IsFile a, Gio.File.IsFile b) =>
a
{- ^ /@repoPath@/: Path to a repository -}
-> b
{- ^ /@sysrootPath@/: Path to the system root -}
-> m Repo
{- ^ __Returns:__ An accessor object for the OSTree repository located at /@repoPath@/. -}
repoNewForSysrootPath repoPath sysrootPath = liftIO $ do
repoPath' <- unsafeManagedPtrCastPtr repoPath
sysrootPath' <- unsafeManagedPtrCastPtr sysrootPath
result <- ostree_repo_new_for_sysroot_path repoPath' sysrootPath'
checkUnexpectedReturnNULL "repoNewForSysrootPath" result
result' <- (wrapObject Repo) result
touchManagedPtr repoPath
touchManagedPtr sysrootPath
return result'
#if ENABLE_OVERLOADING
#endif
-- method Repo::abort_transaction
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_abort_transaction" ostree_repo_abort_transaction ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Abort the active transaction; any staged objects and ref changes will be
discarded. You *must* invoke this if you have chosen not to invoke
'GI.OSTree.Objects.Repo.repoCommitTransaction'. Calling this function when not in a
transaction will do nothing and return successfully.
-}
repoAbortTransaction ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoAbortTransaction self cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_abort_transaction self' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoAbortTransactionMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoAbortTransactionMethodInfo a signature where
overloadedMethod _ = repoAbortTransaction
#endif
-- method Repo::add_gpg_signature_summary
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Self", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "NULL-terminated array of GPG keys.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "homedir", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GPG home directory, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #GCancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_add_gpg_signature_summary" ostree_repo_add_gpg_signature_summary ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr CString -> -- key_id : TCArray True (-1) (-1) (TBasicType TUTF8)
CString -> -- homedir : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Add a GPG signature to a summary file.
-}
repoAddGpgSignatureSummary ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Self -}
-> [T.Text]
{- ^ /@keyId@/: NULL-terminated array of GPG keys. -}
-> Maybe (T.Text)
{- ^ /@homedir@/: GPG home directory, or 'Nothing' -}
-> Maybe (b)
{- ^ /@cancellable@/: A 'GI.Gio.Objects.Cancellable.Cancellable' -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoAddGpgSignatureSummary self keyId homedir cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
keyId' <- packZeroTerminatedUTF8CArray keyId
maybeHomedir <- case homedir of
Nothing -> return nullPtr
Just jHomedir -> do
jHomedir' <- textToCString jHomedir
return jHomedir'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_add_gpg_signature_summary self' keyId' maybeHomedir maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
mapZeroTerminatedCArray freeMem keyId'
freeMem keyId'
freeMem maybeHomedir
return ()
) (do
mapZeroTerminatedCArray freeMem keyId'
freeMem keyId'
freeMem maybeHomedir
)
#if ENABLE_OVERLOADING
data RepoAddGpgSignatureSummaryMethodInfo
instance (signature ~ ([T.Text] -> Maybe (T.Text) -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoAddGpgSignatureSummaryMethodInfo a signature where
overloadedMethod _ = repoAddGpgSignatureSummary
#endif
-- method Repo::append_gpg_signature
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Self", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "commit_checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "SHA256 of given commit to sign", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signature_bytes", argType = TInterface (Name {namespace = "GLib", name = "Bytes"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Signature data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #GCancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_append_gpg_signature" ostree_repo_append_gpg_signature ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- commit_checksum : TBasicType TUTF8
Ptr GLib.Bytes.Bytes -> -- signature_bytes : TInterface (Name {namespace = "GLib", name = "Bytes"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Append a GPG signature to a commit.
-}
repoAppendGpgSignature ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Self -}
-> T.Text
{- ^ /@commitChecksum@/: SHA256 of given commit to sign -}
-> GLib.Bytes.Bytes
{- ^ /@signatureBytes@/: Signature data -}
-> Maybe (b)
{- ^ /@cancellable@/: A 'GI.Gio.Objects.Cancellable.Cancellable' -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoAppendGpgSignature self commitChecksum signatureBytes cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
commitChecksum' <- textToCString commitChecksum
signatureBytes' <- unsafeManagedPtrGetPtr signatureBytes
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_append_gpg_signature self' commitChecksum' signatureBytes' maybeCancellable
touchManagedPtr self
touchManagedPtr signatureBytes
whenJust cancellable touchManagedPtr
freeMem commitChecksum'
return ()
) (do
freeMem commitChecksum'
)
#if ENABLE_OVERLOADING
data RepoAppendGpgSignatureMethodInfo
instance (signature ~ (T.Text -> GLib.Bytes.Bytes -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoAppendGpgSignatureMethodInfo a signature where
overloadedMethod _ = repoAppendGpgSignature
#endif
-- method Repo::checkout_at
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface (Name {namespace = "OSTree", name = "RepoCheckoutAtOptions"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Options", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destination_dfd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Directory FD for destination", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destination_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Directory for destination", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "commit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Checksum for commit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_checkout_at" ostree_repo_checkout_at ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr OSTree.RepoCheckoutAtOptions.RepoCheckoutAtOptions -> -- options : TInterface (Name {namespace = "OSTree", name = "RepoCheckoutAtOptions"})
Int32 -> -- destination_dfd : TBasicType TInt
CString -> -- destination_path : TBasicType TUTF8
CString -> -- commit : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Similar to 'GI.OSTree.Objects.Repo.repoCheckoutTree', but uses directory-relative
paths for the destination, uses a new @OstreeRepoCheckoutAtOptions@,
and takes a commit checksum and optional subpath pair, rather than
requiring use of @GFile@ APIs for the caller.
It also replaces 'GI.OSTree.Objects.Repo.repoCheckoutAt' which was not safe to
use with GObject introspection.
Note in addition that unlike 'GI.OSTree.Objects.Repo.repoCheckoutTree', the
default is not to use the repository-internal uncompressed objects
cache.
-}
repoCheckoutAt ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> Maybe (OSTree.RepoCheckoutAtOptions.RepoCheckoutAtOptions)
{- ^ /@options@/: Options -}
-> Int32
{- ^ /@destinationDfd@/: Directory FD for destination -}
-> T.Text
{- ^ /@destinationPath@/: Directory for destination -}
-> T.Text
{- ^ /@commit@/: Checksum for commit -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoCheckoutAt self options destinationDfd destinationPath commit cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeOptions <- case options of
Nothing -> return nullPtr
Just jOptions -> do
jOptions' <- unsafeManagedPtrGetPtr jOptions
return jOptions'
destinationPath' <- textToCString destinationPath
commit' <- textToCString commit
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_checkout_at self' maybeOptions destinationDfd destinationPath' commit' maybeCancellable
touchManagedPtr self
whenJust options touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem destinationPath'
freeMem commit'
return ()
) (do
freeMem destinationPath'
freeMem commit'
)
#if ENABLE_OVERLOADING
data RepoCheckoutAtMethodInfo
instance (signature ~ (Maybe (OSTree.RepoCheckoutAtOptions.RepoCheckoutAtOptions) -> Int32 -> T.Text -> T.Text -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoCheckoutAtMethodInfo a signature where
overloadedMethod _ = repoCheckoutAt
#endif
-- method Repo::checkout_gc
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_checkout_gc" ostree_repo_checkout_gc ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Call this after finishing a succession of checkout operations; it
will delete any currently-unused uncompressed objects from the
cache.
-}
repoCheckoutGc ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoCheckoutGc self cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_checkout_gc self' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoCheckoutGcMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoCheckoutGcMethodInfo a signature where
overloadedMethod _ = repoCheckoutGc
#endif
-- method Repo::checkout_tree
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface (Name {namespace = "OSTree", name = "RepoCheckoutMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Options controlling all files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "overwrite_mode", argType = TInterface (Name {namespace = "OSTree", name = "RepoCheckoutOverwriteMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Whether or not to overwrite files", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destination", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Place tree here", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source", argType = TInterface (Name {namespace = "OSTree", name = "RepoFile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Source tree", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Source info", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_checkout_tree" ostree_repo_checkout_tree ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- mode : TInterface (Name {namespace = "OSTree", name = "RepoCheckoutMode"})
CUInt -> -- overwrite_mode : TInterface (Name {namespace = "OSTree", name = "RepoCheckoutOverwriteMode"})
Ptr Gio.File.File -> -- destination : TInterface (Name {namespace = "Gio", name = "File"})
Ptr OSTree.RepoFile.RepoFile -> -- source : TInterface (Name {namespace = "OSTree", name = "RepoFile"})
Ptr Gio.FileInfo.FileInfo -> -- source_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Check out /@source@/ into /@destination@/, which must live on the
physical filesystem. /@source@/ may be any subdirectory of a given
commit. The /@mode@/ and /@overwriteMode@/ allow control over how the
files are checked out.
-}
repoCheckoutTree ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.File.IsFile b, OSTree.RepoFile.IsRepoFile c, Gio.FileInfo.IsFileInfo d, Gio.Cancellable.IsCancellable e) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.RepoCheckoutMode
{- ^ /@mode@/: Options controlling all files -}
-> OSTree.Enums.RepoCheckoutOverwriteMode
{- ^ /@overwriteMode@/: Whether or not to overwrite files -}
-> b
{- ^ /@destination@/: Place tree here -}
-> c
{- ^ /@source@/: Source tree -}
-> d
{- ^ /@sourceInfo@/: Source info -}
-> Maybe (e)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoCheckoutTree self mode overwriteMode destination source sourceInfo cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let mode' = (fromIntegral . fromEnum) mode
let overwriteMode' = (fromIntegral . fromEnum) overwriteMode
destination' <- unsafeManagedPtrCastPtr destination
source' <- unsafeManagedPtrCastPtr source
sourceInfo' <- unsafeManagedPtrCastPtr sourceInfo
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_checkout_tree self' mode' overwriteMode' destination' source' sourceInfo' maybeCancellable
touchManagedPtr self
touchManagedPtr destination
touchManagedPtr source
touchManagedPtr sourceInfo
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoCheckoutTreeMethodInfo
instance (signature ~ (OSTree.Enums.RepoCheckoutMode -> OSTree.Enums.RepoCheckoutOverwriteMode -> b -> c -> d -> Maybe (e) -> m ()), MonadIO m, IsRepo a, Gio.File.IsFile b, OSTree.RepoFile.IsRepoFile c, Gio.FileInfo.IsFileInfo d, Gio.Cancellable.IsCancellable e) => O.MethodInfo RepoCheckoutTreeMethodInfo a signature where
overloadedMethod _ = repoCheckoutTree
#endif
-- method Repo::commit_transaction
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_stats", argType = TInterface (Name {namespace = "OSTree", name = "RepoTransactionStats"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A set of statistics of things\nthat happened during this transaction.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_commit_transaction" ostree_repo_commit_transaction ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr OSTree.RepoTransactionStats.RepoTransactionStats -> -- out_stats : TInterface (Name {namespace = "OSTree", name = "RepoTransactionStats"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Complete the transaction. Any refs set with
'GI.OSTree.Objects.Repo.repoTransactionSetRef' or
'GI.OSTree.Objects.Repo.repoTransactionSetRefspec' will be written out.
Note that if multiple threads are performing writes, all such threads must
have terminated before this function is invoked.
Locking: Releases @shared@ lock acquired by @ostree_repo_prepare_transaction()@
Multithreading: This function is *not* MT safe; only one transaction can be
active at a time.
-}
repoCommitTransaction ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m (OSTree.RepoTransactionStats.RepoTransactionStats)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoCommitTransaction self cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
outStats <- callocBoxedBytes 56 :: IO (Ptr OSTree.RepoTransactionStats.RepoTransactionStats)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_commit_transaction self' outStats maybeCancellable
outStats' <- (wrapBoxed OSTree.RepoTransactionStats.RepoTransactionStats) outStats
touchManagedPtr self
whenJust cancellable touchManagedPtr
return outStats'
) (do
freeMem outStats
)
#if ENABLE_OVERLOADING
data RepoCommitTransactionMethodInfo
instance (signature ~ (Maybe (b) -> m (OSTree.RepoTransactionStats.RepoTransactionStats)), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoCommitTransactionMethodInfo a signature where
overloadedMethod _ = repoCommitTransaction
#endif
-- method Repo::copy_config
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "GLib", name = "KeyFile"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_copy_config" ostree_repo_copy_config ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO (Ptr GLib.KeyFile.KeyFile)
{- |
/No description available in the introspection data./
-}
repoCopyConfig ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
-> m GLib.KeyFile.KeyFile
{- ^ __Returns:__ A newly-allocated copy of the repository config -}
repoCopyConfig self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_copy_config self'
checkUnexpectedReturnNULL "repoCopyConfig" result
result' <- (wrapBoxed GLib.KeyFile.KeyFile) result
touchManagedPtr self
return result'
#if ENABLE_OVERLOADING
data RepoCopyConfigMethodInfo
instance (signature ~ (m GLib.KeyFile.KeyFile), MonadIO m, IsRepo a) => O.MethodInfo RepoCopyConfigMethodInfo a signature where
overloadedMethod _ = repoCopyConfig
#endif
-- method Repo::create
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface (Name {namespace = "OSTree", name = "RepoMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The mode to store the repository in", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_create" ostree_repo_create ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- mode : TInterface (Name {namespace = "OSTree", name = "RepoMode"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Create the underlying structure on disk for the repository, and call
'GI.OSTree.Objects.Repo.repoOpen' on the result, preparing it for use.
Since version 2016.8, this function will succeed on an existing
repository, and finish creating any necessary files in a partially
created repository. However, this function cannot change the mode
of an existing repository, and will silently ignore an attempt to
do so.
Since 2017.9, \"existing repository\" is defined by the existence of an
@objects@ subdirectory.
This function predates 'GI.OSTree.Objects.Repo.repoCreateAt'. It is an error to call
this function on a repository initialized via 'GI.OSTree.Objects.Repo.repoOpenAt'.
-}
repoCreate ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> OSTree.Enums.RepoMode
{- ^ /@mode@/: The mode to store the repository in -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoCreate self mode cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let mode' = (fromIntegral . fromEnum) mode
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_create self' mode' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoCreateMethodInfo
instance (signature ~ (OSTree.Enums.RepoMode -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoCreateMethodInfo a signature where
overloadedMethod _ = repoCreate
#endif
-- method Repo::delete_object
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sha256", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_delete_object" ostree_repo_delete_object ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- sha256 : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Remove the object of type /@objtype@/ with checksum /@sha256@/
from the repository. An error of type 'GI.Gio.Enums.IOErrorEnumNotFound'
is thrown if the object does not exist.
-}
repoDeleteObject ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> T.Text
{- ^ /@sha256@/: Checksum -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoDeleteObject self objtype sha256 cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
sha256' <- textToCString sha256
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_delete_object self' objtype' sha256' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem sha256'
return ()
) (do
freeMem sha256'
)
#if ENABLE_OVERLOADING
data RepoDeleteObjectMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> T.Text -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoDeleteObjectMethodInfo a signature where
overloadedMethod _ = repoDeleteObject
#endif
-- method Repo::equal
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "a", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_equal" ostree_repo_equal ::
Ptr Repo -> -- a : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Repo -> -- b : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO CInt
{- |
Check whether two opened repositories are the same on disk: if their root
directories are the same inode. If /@a@/ or /@b@/ are not open yet (due to
'GI.OSTree.Objects.Repo.repoOpen' not being called on them yet), 'False' will be returned.
/Since: 2017.12/
-}
repoEqual ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, IsRepo b) =>
a
{- ^ /@a@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> b
{- ^ /@b@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> m Bool
{- ^ __Returns:__ 'True' if /@a@/ and /@b@/ are the same repository on disk, 'False' otherwise -}
repoEqual a b = liftIO $ do
a' <- unsafeManagedPtrCastPtr a
b' <- unsafeManagedPtrCastPtr b
result <- ostree_repo_equal a' b'
let result' = (/= 0) result
touchManagedPtr a
touchManagedPtr b
return result'
#if ENABLE_OVERLOADING
data RepoEqualMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsRepo a, IsRepo b) => O.MethodInfo RepoEqualMethodInfo a signature where
overloadedMethod _ = repoEqual
#endif
-- method Repo::find_remotes_async
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refs", argType = TCArray True (-1) (-1) (TInterface (Name {namespace = "OSTree", name = "CollectionRef"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "non-empty array of collection\8211ref pairs to find remotes for", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a GVariant `a{sv}` with an extensible set of flags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "finders", argType = TCArray True (-1) (-1) (TInterface (Name {namespace = "OSTree", name = "RepoFinder"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "non-empty array of\n #OstreeRepoFinder instances to use, or %NULL to use the system defaults", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "progress", argType = TInterface (Name {namespace = "OSTree", name = "AsyncProgress"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "an #OstreeAsyncProgress to update with the operation\8217s\n progress, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "asynchronous completion callback", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 7, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "data to pass to @callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_find_remotes_async" ostree_repo_find_remotes_async ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr (Ptr OSTree.CollectionRef.CollectionRef) -> -- refs : TCArray True (-1) (-1) (TInterface (Name {namespace = "OSTree", name = "CollectionRef"}))
Ptr GVariant -> -- options : TVariant
Ptr (Ptr OSTree.RepoFinder.RepoFinder) -> -- finders : TCArray True (-1) (-1) (TInterface (Name {namespace = "OSTree", name = "RepoFinder"}))
Ptr OSTree.AsyncProgress.AsyncProgress -> -- progress : TInterface (Name {namespace = "OSTree", name = "AsyncProgress"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
FunPtr Gio.Callbacks.C_AsyncReadyCallback -> -- callback : TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"})
Ptr () -> -- user_data : TBasicType TPtr
IO ()
{- |
Find reachable remote URIs which claim to provide any of the given named
/@refs@/. This will search for configured remotes ('GI.OSTree.Objects.RepoFinderConfig.RepoFinderConfig'),
mounted volumes ('GI.OSTree.Objects.RepoFinderMount.RepoFinderMount') and (if enabled at compile time)
local network peers ('GI.OSTree.Objects.RepoFinderAvahi.RepoFinderAvahi'). In order to use a custom
configuration of 'GI.OSTree.Interfaces.RepoFinder.RepoFinder' instances, call
'GI.OSTree.Functions.repoFinderResolveAllAsync' on them individually.
Any remote which is found and which claims to support any of the given /@refs@/
will be returned in the results. It is possible that a remote claims to
support a given ref, but turns out not to — it is not possible to verify this
until 'GI.OSTree.Objects.Repo.repoPullFromRemotesAsync' is called.
The returned results will be sorted with the most useful first — this is
typically the remote which claims to provide the most of /@refs@/, at the lowest
latency.
Each result contains a list of the subset of /@refs@/ it claims to provide. It
is possible for a non-empty list of results to be returned, but for some of
/@refs@/ to not be listed in any of the results. Callers must check for this.
Pass the results to 'GI.OSTree.Objects.Repo.repoPullFromRemotesAsync' to pull the given /@refs@/
from those remotes.
The following /@options@/ are currently defined:
* @override-commit-ids@ (@as@): Array of specific commit IDs to fetch. The nth
commit ID applies to the nth ref, so this must be the same length as /@refs@/, if
provided.
* @n-network-retries@ (@u@): Number of times to retry each download on
receiving a transient network error, such as a socket timeout; default is
5, 0 means return errors without retrying. Since: 2018.6
/@finders@/ must be a non-empty 'Nothing'-terminated array of the 'GI.OSTree.Interfaces.RepoFinder.RepoFinder'
instances to use, or 'Nothing' to use the system default set of finders, which
will typically be all available finders using their default options (but
this is not guaranteed).
GPG verification of commits will be used unconditionally.
This will use the thread-default 'GI.GLib.Structs.MainContext.MainContext', but will not iterate it.
/Since: 2018.6/
-}
repoFindRemotesAsync ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, OSTree.AsyncProgress.IsAsyncProgress b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> [OSTree.CollectionRef.CollectionRef]
{- ^ /@refs@/: non-empty array of collection–ref pairs to find remotes for -}
-> Maybe (GVariant)
{- ^ /@options@/: a GVariant @a{sv}@ with an extensible set of flags -}
-> [OSTree.RepoFinder.RepoFinder]
{- ^ /@finders@/: non-empty array of
'GI.OSTree.Interfaces.RepoFinder.RepoFinder' instances to use, or 'Nothing' to use the system defaults -}
-> Maybe (b)
{- ^ /@progress@/: an 'GI.OSTree.Objects.AsyncProgress.AsyncProgress' to update with the operation’s
progress, or 'Nothing' -}
-> Maybe (c)
{- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -}
-> Maybe (Gio.Callbacks.AsyncReadyCallback)
{- ^ /@callback@/: asynchronous completion callback -}
-> m ()
repoFindRemotesAsync self refs options finders progress cancellable callback = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
refs' <- mapM unsafeManagedPtrGetPtr refs
refs'' <- packZeroTerminatedPtrArray refs'
maybeOptions <- case options of
Nothing -> return nullPtr
Just jOptions -> do
jOptions' <- unsafeManagedPtrGetPtr jOptions
return jOptions'
finders' <- mapM unsafeManagedPtrCastPtr finders
finders'' <- packZeroTerminatedPtrArray finders'
maybeProgress <- case progress of
Nothing -> return nullPtr
Just jProgress -> do
jProgress' <- unsafeManagedPtrCastPtr jProgress
return jProgress'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
maybeCallback <- case callback of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jCallback -> do
ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback))
jCallback' <- Gio.Callbacks.mk_AsyncReadyCallback (Gio.Callbacks.wrap_AsyncReadyCallback (Just ptrcallback) (Gio.Callbacks.drop_closures_AsyncReadyCallback jCallback))
poke ptrcallback jCallback'
return jCallback'
let userData = nullPtr
ostree_repo_find_remotes_async self' refs'' maybeOptions finders'' maybeProgress maybeCancellable maybeCallback userData
touchManagedPtr self
mapM_ touchManagedPtr refs
whenJust options touchManagedPtr
mapM_ touchManagedPtr finders
whenJust progress touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem refs''
freeMem finders''
return ()
#if ENABLE_OVERLOADING
data RepoFindRemotesAsyncMethodInfo
instance (signature ~ ([OSTree.CollectionRef.CollectionRef] -> Maybe (GVariant) -> [OSTree.RepoFinder.RepoFinder] -> Maybe (b) -> Maybe (c) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsRepo a, OSTree.AsyncProgress.IsAsyncProgress b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoFindRemotesAsyncMethodInfo a signature where
overloadedMethod _ = repoFindRemotesAsync
#endif
-- method Repo::find_remotes_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gio", name = "AsyncResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the asynchronous result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TCArray True (-1) (-1) (TInterface (Name {namespace = "OSTree", name = "RepoFinderResult"})))
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_find_remotes_finish" ostree_repo_find_remotes_finish ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.AsyncResult.AsyncResult -> -- result : TInterface (Name {namespace = "Gio", name = "AsyncResult"})
Ptr (Ptr GError) -> -- error
IO (Ptr (Ptr OSTree.RepoFinderResult.RepoFinderResult))
{- |
Finish an asynchronous pull operation started with
'GI.OSTree.Objects.Repo.repoFindRemotesAsync'.
/Since: 2018.6/
-}
repoFindRemotesFinish ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.AsyncResult.IsAsyncResult b) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> b
{- ^ /@result@/: the asynchronous result -}
-> m [OSTree.RepoFinderResult.RepoFinderResult]
{- ^ __Returns:__ a potentially empty array
of @/OstreeRepoFinderResults/@, followed by a 'Nothing' terminator element; or
'Nothing' on error /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoFindRemotesFinish self result_ = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result_' <- unsafeManagedPtrCastPtr result_
onException (do
result <- propagateGError $ ostree_repo_find_remotes_finish self' result_'
checkUnexpectedReturnNULL "repoFindRemotesFinish" result
result' <- unpackZeroTerminatedPtrArray result
result'' <- mapM (wrapBoxed OSTree.RepoFinderResult.RepoFinderResult) result'
freeMem result
touchManagedPtr self
touchManagedPtr result_
return result''
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoFindRemotesFinishMethodInfo
instance (signature ~ (b -> m [OSTree.RepoFinderResult.RepoFinderResult]), MonadIO m, IsRepo a, Gio.AsyncResult.IsAsyncResult b) => O.MethodInfo RepoFindRemotesFinishMethodInfo a signature where
overloadedMethod _ = repoFindRemotesFinish
#endif
-- method Repo::fsck_object
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sha256", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_fsck_object" ostree_repo_fsck_object ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- sha256 : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Verify consistency of the object; this performs checks only relevant to the
immediate object itself, such as checksumming. This API call will not itself
traverse metadata objects for example.
/Since: 2017.15/
-}
repoFsckObject ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> T.Text
{- ^ /@sha256@/: Checksum -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoFsckObject self objtype sha256 cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
sha256' <- textToCString sha256
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_fsck_object self' objtype' sha256' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem sha256'
return ()
) (do
freeMem sha256'
)
#if ENABLE_OVERLOADING
data RepoFsckObjectMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> T.Text -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoFsckObjectMethodInfo a signature where
overloadedMethod _ = repoFsckObject
#endif
-- method Repo::get_bootloader
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_get_bootloader" ostree_repo_get_bootloader ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO CString
{- |
Get the bootloader configured. See the documentation for the
\"sysroot.bootloader\" config key.
/Since: 2019.2/
-}
repoGetBootloader ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> m T.Text
{- ^ __Returns:__ bootloader configuration for the sysroot -}
repoGetBootloader self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_get_bootloader self'
checkUnexpectedReturnNULL "repoGetBootloader" result
result' <- cstringToText result
touchManagedPtr self
return result'
#if ENABLE_OVERLOADING
data RepoGetBootloaderMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsRepo a) => O.MethodInfo RepoGetBootloaderMethodInfo a signature where
overloadedMethod _ = repoGetBootloader
#endif
-- method Repo::get_collection_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_get_collection_id" ostree_repo_get_collection_id ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO CString
{- |
Get the collection ID of this repository. See [collection IDs][collection-ids].
/Since: 2018.6/
-}
repoGetCollectionId ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> m (Maybe T.Text)
{- ^ __Returns:__ collection ID for the repository -}
repoGetCollectionId self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_get_collection_id self'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- cstringToText result'
return result''
touchManagedPtr self
return maybeResult
#if ENABLE_OVERLOADING
data RepoGetCollectionIdMethodInfo
instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsRepo a) => O.MethodInfo RepoGetCollectionIdMethodInfo a signature where
overloadedMethod _ = repoGetCollectionId
#endif
-- method Repo::get_config
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "GLib", name = "KeyFile"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_get_config" ostree_repo_get_config ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO (Ptr GLib.KeyFile.KeyFile)
{- |
/No description available in the introspection data./
-}
repoGetConfig ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
-> m GLib.KeyFile.KeyFile
{- ^ __Returns:__ The repository configuration; do not modify -}
repoGetConfig self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_get_config self'
checkUnexpectedReturnNULL "repoGetConfig" result
result' <- (newBoxed GLib.KeyFile.KeyFile) result
touchManagedPtr self
return result'
#if ENABLE_OVERLOADING
data RepoGetConfigMethodInfo
instance (signature ~ (m GLib.KeyFile.KeyFile), MonadIO m, IsRepo a) => O.MethodInfo RepoGetConfigMethodInfo a signature where
overloadedMethod _ = repoGetConfig
#endif
-- method Repo::get_default_repo_finders
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_get_default_repo_finders" ostree_repo_get_default_repo_finders ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO (Ptr CString)
{- |
Get the set of default repo finders configured. See the documentation for
the \"core.default-repo-finders\" config key.
/Since: 2018.9/
-}
repoGetDefaultRepoFinders ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> m [T.Text]
{- ^ __Returns:__
'Nothing'-terminated array of strings. -}
repoGetDefaultRepoFinders self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_get_default_repo_finders self'
checkUnexpectedReturnNULL "repoGetDefaultRepoFinders" result
result' <- unpackZeroTerminatedUTF8CArray result
touchManagedPtr self
return result'
#if ENABLE_OVERLOADING
data RepoGetDefaultRepoFindersMethodInfo
instance (signature ~ (m [T.Text]), MonadIO m, IsRepo a) => O.MethodInfo RepoGetDefaultRepoFindersMethodInfo a signature where
overloadedMethod _ = repoGetDefaultRepoFinders
#endif
-- method Repo::get_dfd
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_get_dfd" ostree_repo_get_dfd ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO Int32
{- |
In some cases it\'s useful for applications to access the repository
directly; for example, writing content into @repo\/tmp@ ensures it\'s
on the same filesystem. Another case is detecting the mtime on the
repository (to see whether a ref was written).
-}
repoGetDfd ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> m Int32
{- ^ __Returns:__ File descriptor for repository root - owned by /@self@/ -}
repoGetDfd self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_get_dfd self'
touchManagedPtr self
return result
#if ENABLE_OVERLOADING
data RepoGetDfdMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsRepo a) => O.MethodInfo RepoGetDfdMethodInfo a signature where
overloadedMethod _ = repoGetDfd
#endif
-- method Repo::get_disable_fsync
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_get_disable_fsync" ostree_repo_get_disable_fsync ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO CInt
{- |
For more information see 'GI.OSTree.Objects.Repo.repoSetDisableFsync'.
-}
repoGetDisableFsync ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> m Bool
{- ^ __Returns:__ Whether or not @/fsync()/@ is enabled for this repo. -}
repoGetDisableFsync self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_get_disable_fsync self'
let result' = (/= 0) result
touchManagedPtr self
return result'
#if ENABLE_OVERLOADING
data RepoGetDisableFsyncMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsRepo a) => O.MethodInfo RepoGetDisableFsyncMethodInfo a signature where
overloadedMethod _ = repoGetDisableFsync
#endif
-- method Repo::get_min_free_space_bytes
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_reserved_bytes", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_get_min_free_space_bytes" ostree_repo_get_min_free_space_bytes ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Word64 -> -- out_reserved_bytes : TBasicType TUInt64
Ptr (Ptr GError) -> -- error
IO CInt
{- |
/No description available in the introspection data./
-}
repoGetMinFreeSpaceBytes ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
-> Word64
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoGetMinFreeSpaceBytes self outReservedBytes = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
onException (do
_ <- propagateGError $ ostree_repo_get_min_free_space_bytes self' outReservedBytes
touchManagedPtr self
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoGetMinFreeSpaceBytesMethodInfo
instance (signature ~ (Word64 -> m ()), MonadIO m, IsRepo a) => O.MethodInfo RepoGetMinFreeSpaceBytesMethodInfo a signature where
overloadedMethod _ = repoGetMinFreeSpaceBytes
#endif
-- method Repo::get_mode
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "RepoMode"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_get_mode" ostree_repo_get_mode ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO CUInt
{- |
/No description available in the introspection data./
-}
repoGetMode ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
-> m OSTree.Enums.RepoMode
repoGetMode self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_get_mode self'
let result' = (toEnum . fromIntegral) result
touchManagedPtr self
return result'
#if ENABLE_OVERLOADING
data RepoGetModeMethodInfo
instance (signature ~ (m OSTree.Enums.RepoMode), MonadIO m, IsRepo a) => O.MethodInfo RepoGetModeMethodInfo a signature where
overloadedMethod _ = repoGetMode
#endif
-- method Repo::get_parent
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "Repo"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_get_parent" ostree_repo_get_parent ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO (Ptr Repo)
{- |
Before this function can be used, @/ostree_repo_init()/@ must have been
called.
-}
repoGetParent ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> m Repo
{- ^ __Returns:__ Parent repository, or 'Nothing' if none -}
repoGetParent self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_get_parent self'
checkUnexpectedReturnNULL "repoGetParent" result
result' <- (newObject Repo) result
touchManagedPtr self
return result'
#if ENABLE_OVERLOADING
data RepoGetParentMethodInfo
instance (signature ~ (m Repo), MonadIO m, IsRepo a) => O.MethodInfo RepoGetParentMethodInfo a signature where
overloadedMethod _ = repoGetParent
#endif
-- method Repo::get_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gio", name = "File"}))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_get_path" ostree_repo_get_path ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO (Ptr Gio.File.File)
{- |
Note that since the introduction of 'GI.OSTree.Objects.Repo.repoOpenAt', this function may
return a process-specific path in @\/proc@ if the repository was created using
that API. In general, you should avoid use of this API.
-}
repoGetPath ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> m Gio.File.File
{- ^ __Returns:__ Path to repo -}
repoGetPath self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_get_path self'
checkUnexpectedReturnNULL "repoGetPath" result
result' <- (newObject Gio.File.File) result
touchManagedPtr self
return result'
#if ENABLE_OVERLOADING
data RepoGetPathMethodInfo
instance (signature ~ (m Gio.File.File), MonadIO m, IsRepo a) => O.MethodInfo RepoGetPathMethodInfo a signature where
overloadedMethod _ = repoGetPath
#endif
-- method Repo::get_remote_boolean_option
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "option_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Option", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Value returned if @option_name is not present", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_value", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the result.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_get_remote_boolean_option" ostree_repo_get_remote_boolean_option ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote_name : TBasicType TUTF8
CString -> -- option_name : TBasicType TUTF8
CInt -> -- default_value : TBasicType TBoolean
Ptr CInt -> -- out_value : TBasicType TBoolean
Ptr (Ptr GError) -> -- error
IO CInt
{- |
OSTree remotes are represented by keyfile groups, formatted like:
@[remote \"remotename\"]@. This function returns a value named /@optionName@/
underneath that group, and returns it as a boolean.
If the option is not set, /@outValue@/ will be set to /@defaultValue@/. If an
error is returned, /@outValue@/ will be set to 'False'.
-}
repoGetRemoteBooleanOption ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: A OstreeRepo -}
-> T.Text
{- ^ /@remoteName@/: Name -}
-> T.Text
{- ^ /@optionName@/: Option -}
-> Bool
{- ^ /@defaultValue@/: Value returned if /@optionName@/ is not present -}
-> m (Bool)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoGetRemoteBooleanOption self remoteName optionName defaultValue = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
remoteName' <- textToCString remoteName
optionName' <- textToCString optionName
let defaultValue' = (fromIntegral . fromEnum) defaultValue
outValue <- allocMem :: IO (Ptr CInt)
onException (do
_ <- propagateGError $ ostree_repo_get_remote_boolean_option self' remoteName' optionName' defaultValue' outValue
outValue' <- peek outValue
let outValue'' = (/= 0) outValue'
touchManagedPtr self
freeMem remoteName'
freeMem optionName'
freeMem outValue
return outValue''
) (do
freeMem remoteName'
freeMem optionName'
freeMem outValue
)
#if ENABLE_OVERLOADING
data RepoGetRemoteBooleanOptionMethodInfo
instance (signature ~ (T.Text -> T.Text -> Bool -> m (Bool)), MonadIO m, IsRepo a) => O.MethodInfo RepoGetRemoteBooleanOptionMethodInfo a signature where
overloadedMethod _ = repoGetRemoteBooleanOption
#endif
-- method Repo::get_remote_list_option
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "option_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Option", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_value", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "location to store the list\n of strings. The list should be freed with\n g_strfreev().", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_get_remote_list_option" ostree_repo_get_remote_list_option ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote_name : TBasicType TUTF8
CString -> -- option_name : TBasicType TUTF8
Ptr (Ptr CString) -> -- out_value : TCArray True (-1) (-1) (TBasicType TUTF8)
Ptr (Ptr GError) -> -- error
IO CInt
{- |
OSTree remotes are represented by keyfile groups, formatted like:
@[remote \"remotename\"]@. This function returns a value named /@optionName@/
underneath that group, and returns it as a zero terminated array of strings.
If the option is not set, or if an error is returned, /@outValue@/ will be set
to 'Nothing'.
-}
repoGetRemoteListOption ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: A OstreeRepo -}
-> T.Text
{- ^ /@remoteName@/: Name -}
-> T.Text
{- ^ /@optionName@/: Option -}
-> m ([T.Text])
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoGetRemoteListOption self remoteName optionName = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
remoteName' <- textToCString remoteName
optionName' <- textToCString optionName
outValue <- allocMem :: IO (Ptr (Ptr CString))
onException (do
_ <- propagateGError $ ostree_repo_get_remote_list_option self' remoteName' optionName' outValue
outValue' <- peek outValue
outValue'' <- unpackZeroTerminatedUTF8CArray outValue'
mapZeroTerminatedCArray freeMem outValue'
freeMem outValue'
touchManagedPtr self
freeMem remoteName'
freeMem optionName'
freeMem outValue
return outValue''
) (do
freeMem remoteName'
freeMem optionName'
freeMem outValue
)
#if ENABLE_OVERLOADING
data RepoGetRemoteListOptionMethodInfo
instance (signature ~ (T.Text -> T.Text -> m ([T.Text])), MonadIO m, IsRepo a) => O.MethodInfo RepoGetRemoteListOptionMethodInfo a signature where
overloadedMethod _ = repoGetRemoteListOption
#endif
-- method Repo::get_remote_option
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "option_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Option", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Value returned if @option_name is not present", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_value", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Return location for value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_get_remote_option" ostree_repo_get_remote_option ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote_name : TBasicType TUTF8
CString -> -- option_name : TBasicType TUTF8
CString -> -- default_value : TBasicType TUTF8
Ptr CString -> -- out_value : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
OSTree remotes are represented by keyfile groups, formatted like:
@[remote \"remotename\"]@. This function returns a value named /@optionName@/
underneath that group, or /@defaultValue@/ if the remote exists but not the
option name. If an error is returned, /@outValue@/ will be set to 'Nothing'.
-}
repoGetRemoteOption ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: A OstreeRepo -}
-> T.Text
{- ^ /@remoteName@/: Name -}
-> T.Text
{- ^ /@optionName@/: Option -}
-> Maybe (T.Text)
{- ^ /@defaultValue@/: Value returned if /@optionName@/ is not present -}
-> m (T.Text)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoGetRemoteOption self remoteName optionName defaultValue = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
remoteName' <- textToCString remoteName
optionName' <- textToCString optionName
maybeDefaultValue <- case defaultValue of
Nothing -> return nullPtr
Just jDefaultValue -> do
jDefaultValue' <- textToCString jDefaultValue
return jDefaultValue'
outValue <- allocMem :: IO (Ptr CString)
onException (do
_ <- propagateGError $ ostree_repo_get_remote_option self' remoteName' optionName' maybeDefaultValue outValue
outValue' <- peek outValue
outValue'' <- cstringToText outValue'
freeMem outValue'
touchManagedPtr self
freeMem remoteName'
freeMem optionName'
freeMem maybeDefaultValue
freeMem outValue
return outValue''
) (do
freeMem remoteName'
freeMem optionName'
freeMem maybeDefaultValue
freeMem outValue
)
#if ENABLE_OVERLOADING
data RepoGetRemoteOptionMethodInfo
instance (signature ~ (T.Text -> T.Text -> Maybe (T.Text) -> m (T.Text)), MonadIO m, IsRepo a) => O.MethodInfo RepoGetRemoteOptionMethodInfo a signature where
overloadedMethod _ = repoGetRemoteOption
#endif
-- method Repo::gpg_verify_data
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repository", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Name of remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TInterface (Name {namespace = "GLib", name = "Bytes"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Data as a #GBytes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signatures", argType = TInterface (Name {namespace = "GLib", name = "Bytes"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Signatures as a #GBytes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyringdir", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Path to directory GPG keyrings; overrides built-in default if given", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "extra_keyring", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Path to additional keyring file (not a directory)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "GpgVerifyResult"}))
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_gpg_verify_data" ostree_repo_gpg_verify_data ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote_name : TBasicType TUTF8
Ptr GLib.Bytes.Bytes -> -- data : TInterface (Name {namespace = "GLib", name = "Bytes"})
Ptr GLib.Bytes.Bytes -> -- signatures : TInterface (Name {namespace = "GLib", name = "Bytes"})
Ptr Gio.File.File -> -- keyringdir : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.File.File -> -- extra_keyring : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO (Ptr OSTree.GpgVerifyResult.GpgVerifyResult)
{- |
Verify /@signatures@/ for /@data@/ using GPG keys in the keyring for
/@remoteName@/, and return an 'GI.OSTree.Objects.GpgVerifyResult.GpgVerifyResult'.
The /@remoteName@/ parameter can be 'Nothing'. In that case it will do
the verifications using GPG keys in the keyrings of all remotes.
-}
repoGpgVerifyData ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.File.IsFile b, Gio.File.IsFile c, Gio.Cancellable.IsCancellable d) =>
a
{- ^ /@self@/: Repository -}
-> Maybe (T.Text)
{- ^ /@remoteName@/: Name of remote -}
-> GLib.Bytes.Bytes
{- ^ /@data@/: Data as a 'GI.GLib.Structs.Bytes.Bytes' -}
-> GLib.Bytes.Bytes
{- ^ /@signatures@/: Signatures as a 'GI.GLib.Structs.Bytes.Bytes' -}
-> Maybe (b)
{- ^ /@keyringdir@/: Path to directory GPG keyrings; overrides built-in default if given -}
-> Maybe (c)
{- ^ /@extraKeyring@/: Path to additional keyring file (not a directory) -}
-> Maybe (d)
{- ^ /@cancellable@/: Cancellable -}
-> m OSTree.GpgVerifyResult.GpgVerifyResult
{- ^ __Returns:__ an 'GI.OSTree.Objects.GpgVerifyResult.GpgVerifyResult', or 'Nothing' on error /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoGpgVerifyData self remoteName data_ signatures keyringdir extraKeyring cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeRemoteName <- case remoteName of
Nothing -> return nullPtr
Just jRemoteName -> do
jRemoteName' <- textToCString jRemoteName
return jRemoteName'
data_' <- unsafeManagedPtrGetPtr data_
signatures' <- unsafeManagedPtrGetPtr signatures
maybeKeyringdir <- case keyringdir of
Nothing -> return nullPtr
Just jKeyringdir -> do
jKeyringdir' <- unsafeManagedPtrCastPtr jKeyringdir
return jKeyringdir'
maybeExtraKeyring <- case extraKeyring of
Nothing -> return nullPtr
Just jExtraKeyring -> do
jExtraKeyring' <- unsafeManagedPtrCastPtr jExtraKeyring
return jExtraKeyring'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ ostree_repo_gpg_verify_data self' maybeRemoteName data_' signatures' maybeKeyringdir maybeExtraKeyring maybeCancellable
checkUnexpectedReturnNULL "repoGpgVerifyData" result
result' <- (wrapObject OSTree.GpgVerifyResult.GpgVerifyResult) result
touchManagedPtr self
touchManagedPtr data_
touchManagedPtr signatures
whenJust keyringdir touchManagedPtr
whenJust extraKeyring touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem maybeRemoteName
return result'
) (do
freeMem maybeRemoteName
)
#if ENABLE_OVERLOADING
data RepoGpgVerifyDataMethodInfo
instance (signature ~ (Maybe (T.Text) -> GLib.Bytes.Bytes -> GLib.Bytes.Bytes -> Maybe (b) -> Maybe (c) -> Maybe (d) -> m OSTree.GpgVerifyResult.GpgVerifyResult), MonadIO m, IsRepo a, Gio.File.IsFile b, Gio.File.IsFile c, Gio.Cancellable.IsCancellable d) => O.MethodInfo RepoGpgVerifyDataMethodInfo a signature where
overloadedMethod _ = repoGpgVerifyData
#endif
-- method Repo::has_object
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_have_object", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE if repository contains object", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_has_object" ostree_repo_has_object ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- checksum : TBasicType TUTF8
Ptr CInt -> -- out_have_object : TBasicType TBoolean
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Set /@outHaveObject@/ to 'True' if /@self@/ contains the given object;
'False' otherwise.
-}
repoHasObject ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> T.Text
{- ^ /@checksum@/: ASCII SHA256 checksum -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m (Bool)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoHasObject self objtype checksum cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
checksum' <- textToCString checksum
outHaveObject <- allocMem :: IO (Ptr CInt)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_has_object self' objtype' checksum' outHaveObject maybeCancellable
outHaveObject' <- peek outHaveObject
let outHaveObject'' = (/= 0) outHaveObject'
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem checksum'
freeMem outHaveObject
return outHaveObject''
) (do
freeMem checksum'
freeMem outHaveObject
)
#if ENABLE_OVERLOADING
data RepoHasObjectMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> T.Text -> Maybe (b) -> m (Bool)), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoHasObjectMethodInfo a signature where
overloadedMethod _ = repoHasObject
#endif
-- method Repo::hash
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_hash" ostree_repo_hash ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO Word32
{- |
Calculate a hash value for the given open repository, suitable for use when
putting it into a hash table. It is an error to call this on an 'GI.OSTree.Objects.Repo.Repo'
which is not yet open, as a persistent hash value cannot be calculated until
the repository is open and the inode of its root directory has been loaded.
This function does no I\/O.
/Since: 2017.12/
-}
repoHash ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> m Word32
{- ^ __Returns:__ hash value for the 'GI.OSTree.Objects.Repo.Repo' -}
repoHash self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result <- ostree_repo_hash self'
touchManagedPtr self
return result
#if ENABLE_OVERLOADING
data RepoHashMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsRepo a) => O.MethodInfo RepoHashMethodInfo a signature where
overloadedMethod _ = repoHash
#endif
-- method Repo::import_object_from
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Destination repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Source repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_import_object_from" ostree_repo_import_object_from ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Repo -> -- source : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- checksum : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Copy object named by /@objtype@/ and /@checksum@/ into /@self@/ from the
source repository /@source@/. If both repositories are of the same
type and on the same filesystem, this will simply be a fast Unix
hard link operation.
Otherwise, a copy will be performed.
-}
repoImportObjectFrom ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, IsRepo b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Destination repo -}
-> b
{- ^ /@source@/: Source repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> T.Text
{- ^ /@checksum@/: checksum -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoImportObjectFrom self source objtype checksum cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
source' <- unsafeManagedPtrCastPtr source
let objtype' = (fromIntegral . fromEnum) objtype
checksum' <- textToCString checksum
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_import_object_from self' source' objtype' checksum' maybeCancellable
touchManagedPtr self
touchManagedPtr source
whenJust cancellable touchManagedPtr
freeMem checksum'
return ()
) (do
freeMem checksum'
)
#if ENABLE_OVERLOADING
data RepoImportObjectFromMethodInfo
instance (signature ~ (b -> OSTree.Enums.ObjectType -> T.Text -> Maybe (c) -> m ()), MonadIO m, IsRepo a, IsRepo b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoImportObjectFromMethodInfo a signature where
overloadedMethod _ = repoImportObjectFrom
#endif
-- method Repo::import_object_from_with_trust
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Destination repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Source repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "trusted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "If %TRUE, assume the source repo is valid and trusted", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_import_object_from_with_trust" ostree_repo_import_object_from_with_trust ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Repo -> -- source : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- checksum : TBasicType TUTF8
CInt -> -- trusted : TBasicType TBoolean
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Copy object named by /@objtype@/ and /@checksum@/ into /@self@/ from the
source repository /@source@/. If /@trusted@/ is 'True' and both
repositories are of the same type and on the same filesystem,
this will simply be a fast Unix hard link operation.
Otherwise, a copy will be performed.
-}
repoImportObjectFromWithTrust ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, IsRepo b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Destination repo -}
-> b
{- ^ /@source@/: Source repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> T.Text
{- ^ /@checksum@/: checksum -}
-> Bool
{- ^ /@trusted@/: If 'True', assume the source repo is valid and trusted -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoImportObjectFromWithTrust self source objtype checksum trusted cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
source' <- unsafeManagedPtrCastPtr source
let objtype' = (fromIntegral . fromEnum) objtype
checksum' <- textToCString checksum
let trusted' = (fromIntegral . fromEnum) trusted
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_import_object_from_with_trust self' source' objtype' checksum' trusted' maybeCancellable
touchManagedPtr self
touchManagedPtr source
whenJust cancellable touchManagedPtr
freeMem checksum'
return ()
) (do
freeMem checksum'
)
#if ENABLE_OVERLOADING
data RepoImportObjectFromWithTrustMethodInfo
instance (signature ~ (b -> OSTree.Enums.ObjectType -> T.Text -> Bool -> Maybe (c) -> m ()), MonadIO m, IsRepo a, IsRepo b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoImportObjectFromWithTrustMethodInfo a signature where
overloadedMethod _ = repoImportObjectFromWithTrust
#endif
-- method Repo::is_system
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "repo", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repository", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_is_system" ostree_repo_is_system ::
Ptr Repo -> -- repo : TInterface (Name {namespace = "OSTree", name = "Repo"})
IO CInt
{- |
/No description available in the introspection data./
-}
repoIsSystem ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@repo@/: Repository -}
-> m Bool
{- ^ __Returns:__ 'True' if this repository is the root-owned system global repository -}
repoIsSystem repo = liftIO $ do
repo' <- unsafeManagedPtrCastPtr repo
result <- ostree_repo_is_system repo'
let result' = (/= 0) result
touchManagedPtr repo
return result'
#if ENABLE_OVERLOADING
data RepoIsSystemMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsRepo a) => O.MethodInfo RepoIsSystemMethodInfo a signature where
overloadedMethod _ = repoIsSystem
#endif
-- method Repo::is_writable
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_is_writable" ostree_repo_is_writable ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Returns whether the repository is writable by the current user.
If the repository is not writable, the /@error@/ indicates why.
-}
repoIsWritable ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoIsWritable self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
onException (do
_ <- propagateGError $ ostree_repo_is_writable self'
touchManagedPtr self
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoIsWritableMethodInfo
instance (signature ~ (m ()), MonadIO m, IsRepo a) => O.MethodInfo RepoIsWritableMethodInfo a signature where
overloadedMethod _ = repoIsWritable
#endif
-- XXX Could not generate method Repo::list_collection_refs
-- Error was : Not implemented: "GHashTable element of type TInterface (Name {namespace = \"OSTree\", name = \"CollectionRef\"}) unsupported."
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoListCollectionRefsMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "listCollectionRefs" Repo) => O.MethodInfo RepoListCollectionRefsMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- XXX Could not generate method Repo::list_commit_objects_starting_with
-- Error was : Not implemented: "GHashTable element of type TVariant unsupported."
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoListCommitObjectsStartingWithMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "listCommitObjectsStartingWith" Repo) => O.MethodInfo RepoListCommitObjectsStartingWithMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- XXX Could not generate method Repo::list_objects
-- Error was : Not implemented: "GHashTable element of type TVariant unsupported."
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoListObjectsMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "listObjects" Repo) => O.MethodInfo RepoListObjectsMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- XXX Could not generate method Repo::list_refs
-- Error was : Not implemented: "Hash table argument with transfer = Container? outAllRefs'"
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoListRefsMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "listRefs" Repo) => O.MethodInfo RepoListRefsMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- XXX Could not generate method Repo::list_refs_ext
-- Error was : Not implemented: "Hash table argument with transfer = Container? outAllRefs'"
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoListRefsExtMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "listRefsExt" Repo) => O.MethodInfo RepoListRefsExtMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- method Repo::list_static_delta_names
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_deltas", argType = TPtrArray (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "String name of deltas (checksum-checksum.delta)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferContainer},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_list_static_delta_names" ostree_repo_list_static_delta_names ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr (Ptr (GPtrArray CString)) -> -- out_deltas : TPtrArray (TBasicType TUTF8)
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
This function synchronously enumerates all static deltas in the
repository, returning its result in /@outDeltas@/.
-}
repoListStaticDeltaNames ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ([T.Text])
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoListStaticDeltaNames self cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
outDeltas <- allocMem :: IO (Ptr (Ptr (GPtrArray CString)))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_list_static_delta_names self' outDeltas maybeCancellable
outDeltas' <- peek outDeltas
outDeltas'' <- unpackGPtrArray outDeltas'
outDeltas''' <- mapM cstringToText outDeltas''
unrefPtrArray outDeltas'
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem outDeltas
return outDeltas'''
) (do
freeMem outDeltas
)
#if ENABLE_OVERLOADING
data RepoListStaticDeltaNamesMethodInfo
instance (signature ~ (Maybe (b) -> m ([T.Text])), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoListStaticDeltaNamesMethodInfo a signature where
overloadedMethod _ = repoListStaticDeltaNames
#endif
-- method Repo::load_commit
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Commit checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_commit", argType = TVariant, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Commit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_state", argType = TInterface (Name {namespace = "OSTree", name = "RepoCommitState"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Commit state", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_load_commit" ostree_repo_load_commit ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- checksum : TBasicType TUTF8
Ptr (Ptr GVariant) -> -- out_commit : TVariant
Ptr CUInt -> -- out_state : TInterface (Name {namespace = "OSTree", name = "RepoCommitState"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
A version of 'GI.OSTree.Objects.Repo.repoLoadVariant' specialized to commits,
capable of returning extended state information. Currently
the only extended state is 'GI.OSTree.Flags.RepoCommitStatePartial', which
means that only a sub-path of the commit is available.
-}
repoLoadCommit ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@checksum@/: Commit checksum -}
-> m ((GVariant, [OSTree.Flags.RepoCommitState]))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoLoadCommit self checksum = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
checksum' <- textToCString checksum
outCommit <- allocMem :: IO (Ptr (Ptr GVariant))
outState <- allocMem :: IO (Ptr CUInt)
onException (do
_ <- propagateGError $ ostree_repo_load_commit self' checksum' outCommit outState
outCommit' <- peek outCommit
outCommit'' <- B.GVariant.wrapGVariantPtr outCommit'
outState' <- peek outState
let outState'' = wordToGFlags outState'
touchManagedPtr self
freeMem checksum'
freeMem outCommit
freeMem outState
return (outCommit'', outState'')
) (do
freeMem checksum'
freeMem outCommit
freeMem outState
)
#if ENABLE_OVERLOADING
data RepoLoadCommitMethodInfo
instance (signature ~ (T.Text -> m ((GVariant, [OSTree.Flags.RepoCommitState]))), MonadIO m, IsRepo a) => O.MethodInfo RepoLoadCommitMethodInfo a signature where
overloadedMethod _ = repoLoadCommit
#endif
-- method Repo::load_file
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionOut, mayBeNull = True, argDoc = Documentation {rawDocText = Just "File content", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_file_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionOut, mayBeNull = True, argDoc = Documentation {rawDocText = Just "File information", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_xattrs", argType = TVariant, direction = DirectionOut, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Extended attributes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_load_file" ostree_repo_load_file ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- checksum : TBasicType TUTF8
Ptr (Ptr Gio.InputStream.InputStream) -> -- out_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr (Ptr Gio.FileInfo.FileInfo) -> -- out_file_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
Ptr (Ptr GVariant) -> -- out_xattrs : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Load content object, decomposing it into three parts: the actual
content (for regular files), the metadata, and extended attributes.
-}
repoLoadFile ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@checksum@/: ASCII SHA256 checksum -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ((Maybe Gio.InputStream.InputStream, Maybe Gio.FileInfo.FileInfo, Maybe GVariant))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoLoadFile self checksum cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
checksum' <- textToCString checksum
outInput <- allocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
outFileInfo <- allocMem :: IO (Ptr (Ptr Gio.FileInfo.FileInfo))
outXattrs <- allocMem :: IO (Ptr (Ptr GVariant))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_load_file self' checksum' outInput outFileInfo outXattrs maybeCancellable
outInput' <- peek outInput
maybeOutInput' <- convertIfNonNull outInput' $ \outInput'' -> do
outInput''' <- (wrapObject Gio.InputStream.InputStream) outInput''
return outInput'''
outFileInfo' <- peek outFileInfo
maybeOutFileInfo' <- convertIfNonNull outFileInfo' $ \outFileInfo'' -> do
outFileInfo''' <- (wrapObject Gio.FileInfo.FileInfo) outFileInfo''
return outFileInfo'''
outXattrs' <- peek outXattrs
maybeOutXattrs' <- convertIfNonNull outXattrs' $ \outXattrs'' -> do
outXattrs''' <- B.GVariant.wrapGVariantPtr outXattrs''
return outXattrs'''
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem checksum'
freeMem outInput
freeMem outFileInfo
freeMem outXattrs
return (maybeOutInput', maybeOutFileInfo', maybeOutXattrs')
) (do
freeMem checksum'
freeMem outInput
freeMem outFileInfo
freeMem outXattrs
)
#if ENABLE_OVERLOADING
data RepoLoadFileMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> m ((Maybe Gio.InputStream.InputStream, Maybe Gio.FileInfo.FileInfo, Maybe GVariant))), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoLoadFileMethodInfo a signature where
overloadedMethod _ = repoLoadFile
#endif
-- method Repo::load_object_stream
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Stream for object", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_size", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Length of @out_input", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_load_object_stream" ostree_repo_load_object_stream ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- checksum : TBasicType TUTF8
Ptr (Ptr Gio.InputStream.InputStream) -> -- out_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr Word64 -> -- out_size : TBasicType TUInt64
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Load object as a stream; useful when copying objects between
repositories.
-}
repoLoadObjectStream ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> T.Text
{- ^ /@checksum@/: ASCII SHA256 checksum -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ((Gio.InputStream.InputStream, Word64))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoLoadObjectStream self objtype checksum cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
checksum' <- textToCString checksum
outInput <- allocMem :: IO (Ptr (Ptr Gio.InputStream.InputStream))
outSize <- allocMem :: IO (Ptr Word64)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_load_object_stream self' objtype' checksum' outInput outSize maybeCancellable
outInput' <- peek outInput
outInput'' <- (wrapObject Gio.InputStream.InputStream) outInput'
outSize' <- peek outSize
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem checksum'
freeMem outInput
freeMem outSize
return (outInput'', outSize')
) (do
freeMem checksum'
freeMem outInput
freeMem outSize
)
#if ENABLE_OVERLOADING
data RepoLoadObjectStreamMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> T.Text -> Maybe (b) -> m ((Gio.InputStream.InputStream, Word64))), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoLoadObjectStreamMethodInfo a signature where
overloadedMethod _ = repoLoadObjectStream
#endif
-- method Repo::load_variant
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Expected object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sha256", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Checksum string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_variant", argType = TVariant, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Metadata object", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_load_variant" ostree_repo_load_variant ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- sha256 : TBasicType TUTF8
Ptr (Ptr GVariant) -> -- out_variant : TVariant
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Load the metadata object /@sha256@/ of type /@objtype@/, storing the
result in /@outVariant@/.
-}
repoLoadVariant ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Expected object type -}
-> T.Text
{- ^ /@sha256@/: Checksum string -}
-> m (GVariant)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoLoadVariant self objtype sha256 = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
sha256' <- textToCString sha256
outVariant <- allocMem :: IO (Ptr (Ptr GVariant))
onException (do
_ <- propagateGError $ ostree_repo_load_variant self' objtype' sha256' outVariant
outVariant' <- peek outVariant
outVariant'' <- B.GVariant.wrapGVariantPtr outVariant'
touchManagedPtr self
freeMem sha256'
freeMem outVariant
return outVariant''
) (do
freeMem sha256'
freeMem outVariant
)
#if ENABLE_OVERLOADING
data RepoLoadVariantMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> T.Text -> m (GVariant)), MonadIO m, IsRepo a) => O.MethodInfo RepoLoadVariantMethodInfo a signature where
overloadedMethod _ = repoLoadVariant
#endif
-- method Repo::load_variant_if_exists
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sha256", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_variant", argType = TVariant, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Metadata", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_load_variant_if_exists" ostree_repo_load_variant_if_exists ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- sha256 : TBasicType TUTF8
Ptr (Ptr GVariant) -> -- out_variant : TVariant
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Attempt to load the metadata object /@sha256@/ of type /@objtype@/ if it
exists, storing the result in /@outVariant@/. If it doesn\'t exist,
'Nothing' is returned.
-}
repoLoadVariantIfExists ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> T.Text
{- ^ /@sha256@/: ASCII checksum -}
-> m (GVariant)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoLoadVariantIfExists self objtype sha256 = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
sha256' <- textToCString sha256
outVariant <- allocMem :: IO (Ptr (Ptr GVariant))
onException (do
_ <- propagateGError $ ostree_repo_load_variant_if_exists self' objtype' sha256' outVariant
outVariant' <- peek outVariant
outVariant'' <- B.GVariant.wrapGVariantPtr outVariant'
touchManagedPtr self
freeMem sha256'
freeMem outVariant
return outVariant''
) (do
freeMem sha256'
freeMem outVariant
)
#if ENABLE_OVERLOADING
data RepoLoadVariantIfExistsMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> T.Text -> m (GVariant)), MonadIO m, IsRepo a) => O.MethodInfo RepoLoadVariantIfExistsMethodInfo a signature where
overloadedMethod _ = repoLoadVariantIfExists
#endif
-- method Repo::mark_commit_partial
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Commit SHA-256", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_partial", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Whether or not this commit is partial", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_mark_commit_partial" ostree_repo_mark_commit_partial ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- checksum : TBasicType TUTF8
CInt -> -- is_partial : TBasicType TBoolean
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Commits in \"partial\" state do not have all their child objects written. This
occurs in various situations, such as during a pull, but also if a \"subpath\"
pull is used, as well as \"commit only\" pulls.
This function is used by 'GI.OSTree.Objects.Repo.repoPullWithOptions'; you
should use this if you are implementing a different type of transport.
/Since: 2017.15/
-}
repoMarkCommitPartial ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@checksum@/: Commit SHA-256 -}
-> Bool
{- ^ /@isPartial@/: Whether or not this commit is partial -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoMarkCommitPartial self checksum isPartial = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
checksum' <- textToCString checksum
let isPartial' = (fromIntegral . fromEnum) isPartial
onException (do
_ <- propagateGError $ ostree_repo_mark_commit_partial self' checksum' isPartial'
touchManagedPtr self
freeMem checksum'
return ()
) (do
freeMem checksum'
)
#if ENABLE_OVERLOADING
data RepoMarkCommitPartialMethodInfo
instance (signature ~ (T.Text -> Bool -> m ()), MonadIO m, IsRepo a) => O.MethodInfo RepoMarkCommitPartialMethodInfo a signature where
overloadedMethod _ = repoMarkCommitPartial
#endif
-- method Repo::open
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_open" ostree_repo_open ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
/No description available in the introspection data./
-}
repoOpen ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
-> Maybe (b)
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoOpen self cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_open self' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoOpenMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoOpenMethodInfo a signature where
overloadedMethod _ = repoOpen
#endif
-- method Repo::prepare_transaction
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_transaction_resume", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Whether this transaction\nis resuming from a previous one. This is a legacy state, now OSTree\npulls use per-commit `state/.commitpartial` files.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_prepare_transaction" ostree_repo_prepare_transaction ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr CInt -> -- out_transaction_resume : TBasicType TBoolean
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Starts or resumes a transaction. In order to write to a repo, you
need to start a transaction. You can complete the transaction with
'GI.OSTree.Objects.Repo.repoCommitTransaction', or abort the transaction with
'GI.OSTree.Objects.Repo.repoAbortTransaction'.
Currently, transactions may result in partial commits or data in the target
repository if interrupted during 'GI.OSTree.Objects.Repo.repoCommitTransaction', and
further writing refs is also not currently atomic.
There can be at most one transaction active on a repo at a time per instance
of @OstreeRepo@; however, it is safe to have multiple threads writing objects
on a single @OstreeRepo@ instance as long as their lifetime is bounded by the
transaction.
Locking: Acquires a @shared@ lock; release via commit or abort
Multithreading: This function is *not* MT safe; only one transaction can be
active at a time.
-}
repoPrepareTransaction ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m (Bool)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoPrepareTransaction self cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
outTransactionResume <- allocMem :: IO (Ptr CInt)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_prepare_transaction self' outTransactionResume maybeCancellable
outTransactionResume' <- peek outTransactionResume
let outTransactionResume'' = (/= 0) outTransactionResume'
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem outTransactionResume
return outTransactionResume''
) (do
freeMem outTransactionResume
)
#if ENABLE_OVERLOADING
data RepoPrepareTransactionMethodInfo
instance (signature ~ (Maybe (b) -> m (Bool)), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoPrepareTransactionMethodInfo a signature where
overloadedMethod _ = repoPrepareTransaction
#endif
-- method Repo::prune
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "OSTree", name = "RepoPruneFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Options controlling prune process", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "depth", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Stop traversal after this many iterations (-1 for unlimited)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_objects_total", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Number of objects found", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_objects_pruned", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Number of objects deleted", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_pruned_object_size_total", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Storage size in bytes of objects deleted", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_prune" ostree_repo_prune ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- flags : TInterface (Name {namespace = "OSTree", name = "RepoPruneFlags"})
Int32 -> -- depth : TBasicType TInt
Ptr Int32 -> -- out_objects_total : TBasicType TInt
Ptr Int32 -> -- out_objects_pruned : TBasicType TInt
Ptr Word64 -> -- out_pruned_object_size_total : TBasicType TUInt64
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Delete content from the repository. By default, this function will
only delete \"orphaned\" objects not referred to by any commit. This
can happen during a local commit operation, when we have written
content objects but not saved the commit referencing them.
However, if 'GI.OSTree.Enums.RepoPruneFlagsRefsOnly' is provided, instead
of traversing all commits, only refs will be used. Particularly
when combined with /@depth@/, this is a convenient way to delete
history from the repository.
Use the 'GI.OSTree.Enums.RepoPruneFlagsNoPrune' to just determine
statistics on objects that would be deleted, without actually
deleting them.
Locking: exclusive
-}
repoPrune ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.RepoPruneFlags
{- ^ /@flags@/: Options controlling prune process -}
-> Int32
{- ^ /@depth@/: Stop traversal after this many iterations (-1 for unlimited) -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ((Int32, Int32, Word64))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoPrune self flags depth cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let flags' = (fromIntegral . fromEnum) flags
outObjectsTotal <- allocMem :: IO (Ptr Int32)
outObjectsPruned <- allocMem :: IO (Ptr Int32)
outPrunedObjectSizeTotal <- allocMem :: IO (Ptr Word64)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_prune self' flags' depth outObjectsTotal outObjectsPruned outPrunedObjectSizeTotal maybeCancellable
outObjectsTotal' <- peek outObjectsTotal
outObjectsPruned' <- peek outObjectsPruned
outPrunedObjectSizeTotal' <- peek outPrunedObjectSizeTotal
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem outObjectsTotal
freeMem outObjectsPruned
freeMem outPrunedObjectSizeTotal
return (outObjectsTotal', outObjectsPruned', outPrunedObjectSizeTotal')
) (do
freeMem outObjectsTotal
freeMem outObjectsPruned
freeMem outPrunedObjectSizeTotal
)
#if ENABLE_OVERLOADING
data RepoPruneMethodInfo
instance (signature ~ (OSTree.Enums.RepoPruneFlags -> Int32 -> Maybe (b) -> m ((Int32, Int32, Word64))), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoPruneMethodInfo a signature where
overloadedMethod _ = repoPrune
#endif
-- method Repo::prune_from_reachable
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface (Name {namespace = "OSTree", name = "RepoPruneOptions"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Options controlling prune process", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_objects_total", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Number of objects found", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_objects_pruned", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Number of objects deleted", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_pruned_object_size_total", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Storage size in bytes of objects deleted", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_prune_from_reachable" ostree_repo_prune_from_reachable ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr OSTree.RepoPruneOptions.RepoPruneOptions -> -- options : TInterface (Name {namespace = "OSTree", name = "RepoPruneOptions"})
Ptr Int32 -> -- out_objects_total : TBasicType TInt
Ptr Int32 -> -- out_objects_pruned : TBasicType TInt
Ptr Word64 -> -- out_pruned_object_size_total : TBasicType TUInt64
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Delete content from the repository. This function is the \"backend\"
half of the higher level 'GI.OSTree.Objects.Repo.repoPrune'. To use this function,
you determine the root set yourself, and this function finds all other
unreferenced objects and deletes them.
Use this API when you want to perform more selective pruning - for example,
retain all commits from a production branch, but just GC some history from
your dev branch.
The 'GI.OSTree.Enums.RepoPruneFlagsNoPrune' flag may be specified to just determine
statistics on objects that would be deleted, without actually deleting them.
Locking: exclusive
-}
repoPruneFromReachable ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.RepoPruneOptions.RepoPruneOptions
{- ^ /@options@/: Options controlling prune process -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ((Int32, Int32, Word64))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoPruneFromReachable self options cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
options' <- unsafeManagedPtrGetPtr options
outObjectsTotal <- allocMem :: IO (Ptr Int32)
outObjectsPruned <- allocMem :: IO (Ptr Int32)
outPrunedObjectSizeTotal <- allocMem :: IO (Ptr Word64)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_prune_from_reachable self' options' outObjectsTotal outObjectsPruned outPrunedObjectSizeTotal maybeCancellable
outObjectsTotal' <- peek outObjectsTotal
outObjectsPruned' <- peek outObjectsPruned
outPrunedObjectSizeTotal' <- peek outPrunedObjectSizeTotal
touchManagedPtr self
touchManagedPtr options
whenJust cancellable touchManagedPtr
freeMem outObjectsTotal
freeMem outObjectsPruned
freeMem outPrunedObjectSizeTotal
return (outObjectsTotal', outObjectsPruned', outPrunedObjectSizeTotal')
) (do
freeMem outObjectsTotal
freeMem outObjectsPruned
freeMem outPrunedObjectSizeTotal
)
#if ENABLE_OVERLOADING
data RepoPruneFromReachableMethodInfo
instance (signature ~ (OSTree.RepoPruneOptions.RepoPruneOptions -> Maybe (b) -> m ((Int32, Int32, Word64))), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoPruneFromReachableMethodInfo a signature where
overloadedMethod _ = repoPruneFromReachable
#endif
-- method Repo::prune_static_deltas
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "commit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum for commit, or %NULL for each\nnon existing commit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_prune_static_deltas" ostree_repo_prune_static_deltas ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- commit : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Prune static deltas, if COMMIT is specified then delete static delta files only
targeting that commit; otherwise any static delta of non existing commits are
deleted.
Locking: exclusive
-}
repoPruneStaticDeltas ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> Maybe (T.Text)
{- ^ /@commit@/: ASCII SHA256 checksum for commit, or 'Nothing' for each
non existing commit -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoPruneStaticDeltas self commit cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeCommit <- case commit of
Nothing -> return nullPtr
Just jCommit -> do
jCommit' <- textToCString jCommit
return jCommit'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_prune_static_deltas self' maybeCommit maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem maybeCommit
return ()
) (do
freeMem maybeCommit
)
#if ENABLE_OVERLOADING
data RepoPruneStaticDeltasMethodInfo
instance (signature ~ (Maybe (T.Text) -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoPruneStaticDeltasMethodInfo a signature where
overloadedMethod _ = repoPruneStaticDeltas
#endif
-- method Repo::pull
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name of remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refs_to_fetch", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional list of refs; if %NULL, fetch all configured refs", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "OSTree", name = "RepoPullFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Options controlling fetch behavior", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "progress", argType = TInterface (Name {namespace = "OSTree", name = "AsyncProgress"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Progress", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_pull" ostree_repo_pull ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote_name : TBasicType TUTF8
Ptr CString -> -- refs_to_fetch : TCArray True (-1) (-1) (TBasicType TUTF8)
CUInt -> -- flags : TInterface (Name {namespace = "OSTree", name = "RepoPullFlags"})
Ptr OSTree.AsyncProgress.AsyncProgress -> -- progress : TInterface (Name {namespace = "OSTree", name = "AsyncProgress"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Connect to the remote repository, fetching the specified set of
refs /@refsToFetch@/. For each ref that is changed, download the
commit, all metadata, and all content objects, storing them safely
on disk in /@self@/.
If /@flags@/ contains 'GI.OSTree.Flags.RepoPullFlagsMirror', and
the /@refsToFetch@/ is 'Nothing', and the remote repository contains a
summary file, then all refs will be fetched.
If /@flags@/ contains 'GI.OSTree.Flags.RepoPullFlagsCommitOnly', then only the
metadata for the commits in /@refsToFetch@/ is pulled.
Warning: This API will iterate the thread default main context,
which is a bug, but kept for compatibility reasons. If you want to
avoid this, use 'GI.GLib.Structs.MainContext.mainContextPushThreadDefault' to push a new
one around this call.
-}
repoPull ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, OSTree.AsyncProgress.IsAsyncProgress b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@remoteName@/: Name of remote -}
-> Maybe ([T.Text])
{- ^ /@refsToFetch@/: Optional list of refs; if 'Nothing', fetch all configured refs -}
-> [OSTree.Flags.RepoPullFlags]
{- ^ /@flags@/: Options controlling fetch behavior -}
-> Maybe (b)
{- ^ /@progress@/: Progress -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoPull self remoteName refsToFetch flags progress cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
remoteName' <- textToCString remoteName
maybeRefsToFetch <- case refsToFetch of
Nothing -> return nullPtr
Just jRefsToFetch -> do
jRefsToFetch' <- packZeroTerminatedUTF8CArray jRefsToFetch
return jRefsToFetch'
let flags' = gflagsToWord flags
maybeProgress <- case progress of
Nothing -> return nullPtr
Just jProgress -> do
jProgress' <- unsafeManagedPtrCastPtr jProgress
return jProgress'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_pull self' remoteName' maybeRefsToFetch flags' maybeProgress maybeCancellable
touchManagedPtr self
whenJust progress touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem remoteName'
mapZeroTerminatedCArray freeMem maybeRefsToFetch
freeMem maybeRefsToFetch
return ()
) (do
freeMem remoteName'
mapZeroTerminatedCArray freeMem maybeRefsToFetch
freeMem maybeRefsToFetch
)
#if ENABLE_OVERLOADING
data RepoPullMethodInfo
instance (signature ~ (T.Text -> Maybe ([T.Text]) -> [OSTree.Flags.RepoPullFlags] -> Maybe (b) -> Maybe (c) -> m ()), MonadIO m, IsRepo a, OSTree.AsyncProgress.IsAsyncProgress b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoPullMethodInfo a signature where
overloadedMethod _ = repoPull
#endif
-- method Repo::pull_from_remotes_async
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "results", argType = TCArray True (-1) (-1) (TInterface (Name {namespace = "OSTree", name = "RepoFinderResult"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%NULL-terminated array of remotes to\n pull from, including the refs to pull from each", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A GVariant `a{sv}` with an extensible set of flags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "progress", argType = TInterface (Name {namespace = "OSTree", name = "AsyncProgress"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "an #OstreeAsyncProgress to update with the operation\8217s\n progress, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "asynchronous completion callback", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 6, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "data to pass to @callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_pull_from_remotes_async" ostree_repo_pull_from_remotes_async ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr (Ptr OSTree.RepoFinderResult.RepoFinderResult) -> -- results : TCArray True (-1) (-1) (TInterface (Name {namespace = "OSTree", name = "RepoFinderResult"}))
Ptr GVariant -> -- options : TVariant
Ptr OSTree.AsyncProgress.AsyncProgress -> -- progress : TInterface (Name {namespace = "OSTree", name = "AsyncProgress"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
FunPtr Gio.Callbacks.C_AsyncReadyCallback -> -- callback : TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"})
Ptr () -> -- user_data : TBasicType TPtr
IO ()
{- |
Pull refs from multiple remotes which have been found using
'GI.OSTree.Objects.Repo.repoFindRemotesAsync'.
/@results@/ are expected to be in priority order, with the best remotes to pull
from listed first. 'GI.OSTree.Objects.Repo.repoPullFromRemotesAsync' will generally pull
from the remotes in order, but may parallelise its downloads.
If an error is encountered when pulling from a given remote, that remote will
be ignored and another will be tried instead. If any refs have not been
downloaded successfully after all remotes have been tried, 'GI.Gio.Enums.IOErrorEnumFailed'
will be returned. The results of any successful downloads will remain cached
in the local repository.
If /@cancellable@/ is cancelled, 'GI.Gio.Enums.IOErrorEnumCancelled' will be returned
immediately. The results of any successfully completed downloads at that
point will remain cached in the local repository.
GPG verification of commits will be used unconditionally.
The following /@options@/ are currently defined:
* @flags@ (@i@): 'GI.OSTree.Flags.RepoPullFlags' to apply to the pull operation
* @inherit-transaction@ (@b@): 'True' to inherit an ongoing transaction on
the 'GI.OSTree.Objects.Repo.Repo', rather than encapsulating the pull in a new one
* @depth@ (@i@): How far in the history to traverse; default is 0, -1 means infinite
* @disable-static-deltas@ (@b@): Do not use static deltas
* @http-headers@ (@a(ss)@): Additional headers to add to all HTTP requests
* @subdirs@ (@as@): Pull just these subdirectories
* @update-frequency@ (@u@): Frequency to call the async progress callback in
milliseconds, if any; only values higher than 0 are valid
* @append-user-agent@ (@s@): Additional string to append to the user agent
* @n-network-retries@ (@u@): Number of times to retry each download on receiving
a transient network error, such as a socket timeout; default is 5, 0
means return errors without retrying. Since: 2018.6
* @ref-keyring-map@ (@a(sss)@): Array of (collection ID, ref name, keyring
remote name) tuples specifying which remote\'s keyring should be used when
doing GPG verification of each collection-ref. This is useful to prevent a
remote from serving malicious updates to refs which did not originate from
it. This can be a subset or superset of the refs being pulled; any ref
not being pulled will be ignored and any ref without a keyring remote
will be verified with the keyring of the remote being pulled from.
Since: 2019.2
/Since: 2018.6/
-}
repoPullFromRemotesAsync ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, OSTree.AsyncProgress.IsAsyncProgress b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> [OSTree.RepoFinderResult.RepoFinderResult]
{- ^ /@results@/: 'Nothing'-terminated array of remotes to
pull from, including the refs to pull from each -}
-> Maybe (GVariant)
{- ^ /@options@/: A GVariant @a{sv}@ with an extensible set of flags -}
-> Maybe (b)
{- ^ /@progress@/: an 'GI.OSTree.Objects.AsyncProgress.AsyncProgress' to update with the operation’s
progress, or 'Nothing' -}
-> Maybe (c)
{- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -}
-> Maybe (Gio.Callbacks.AsyncReadyCallback)
{- ^ /@callback@/: asynchronous completion callback -}
-> m ()
repoPullFromRemotesAsync self results options progress cancellable callback = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
results' <- mapM unsafeManagedPtrGetPtr results
results'' <- packZeroTerminatedPtrArray results'
maybeOptions <- case options of
Nothing -> return nullPtr
Just jOptions -> do
jOptions' <- unsafeManagedPtrGetPtr jOptions
return jOptions'
maybeProgress <- case progress of
Nothing -> return nullPtr
Just jProgress -> do
jProgress' <- unsafeManagedPtrCastPtr jProgress
return jProgress'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
maybeCallback <- case callback of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jCallback -> do
ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback))
jCallback' <- Gio.Callbacks.mk_AsyncReadyCallback (Gio.Callbacks.wrap_AsyncReadyCallback (Just ptrcallback) (Gio.Callbacks.drop_closures_AsyncReadyCallback jCallback))
poke ptrcallback jCallback'
return jCallback'
let userData = nullPtr
ostree_repo_pull_from_remotes_async self' results'' maybeOptions maybeProgress maybeCancellable maybeCallback userData
touchManagedPtr self
mapM_ touchManagedPtr results
whenJust options touchManagedPtr
whenJust progress touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem results''
return ()
#if ENABLE_OVERLOADING
data RepoPullFromRemotesAsyncMethodInfo
instance (signature ~ ([OSTree.RepoFinderResult.RepoFinderResult] -> Maybe (GVariant) -> Maybe (b) -> Maybe (c) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsRepo a, OSTree.AsyncProgress.IsAsyncProgress b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoPullFromRemotesAsyncMethodInfo a signature where
overloadedMethod _ = repoPullFromRemotesAsync
#endif
-- method Repo::pull_from_remotes_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gio", name = "AsyncResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the asynchronous result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_pull_from_remotes_finish" ostree_repo_pull_from_remotes_finish ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.AsyncResult.AsyncResult -> -- result : TInterface (Name {namespace = "Gio", name = "AsyncResult"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Finish an asynchronous pull operation started with
'GI.OSTree.Objects.Repo.repoPullFromRemotesAsync'.
/Since: 2018.6/
-}
repoPullFromRemotesFinish ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.AsyncResult.IsAsyncResult b) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> b
{- ^ /@result@/: the asynchronous result -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoPullFromRemotesFinish self result_ = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result_' <- unsafeManagedPtrCastPtr result_
onException (do
_ <- propagateGError $ ostree_repo_pull_from_remotes_finish self' result_'
touchManagedPtr self
touchManagedPtr result_
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoPullFromRemotesFinishMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsRepo a, Gio.AsyncResult.IsAsyncResult b) => O.MethodInfo RepoPullFromRemotesFinishMethodInfo a signature where
overloadedMethod _ = repoPullFromRemotesFinish
#endif
-- method Repo::pull_one_dir
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name of remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dir_to_pull", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Subdirectory path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refs_to_fetch", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional list of refs; if %NULL, fetch all configured refs", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "OSTree", name = "RepoPullFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Options controlling fetch behavior", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "progress", argType = TInterface (Name {namespace = "OSTree", name = "AsyncProgress"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Progress", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_pull_one_dir" ostree_repo_pull_one_dir ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote_name : TBasicType TUTF8
CString -> -- dir_to_pull : TBasicType TUTF8
Ptr CString -> -- refs_to_fetch : TCArray True (-1) (-1) (TBasicType TUTF8)
CUInt -> -- flags : TInterface (Name {namespace = "OSTree", name = "RepoPullFlags"})
Ptr OSTree.AsyncProgress.AsyncProgress -> -- progress : TInterface (Name {namespace = "OSTree", name = "AsyncProgress"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
This is similar to 'GI.OSTree.Objects.Repo.repoPull', but only fetches a single
subpath.
-}
repoPullOneDir ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, OSTree.AsyncProgress.IsAsyncProgress b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@remoteName@/: Name of remote -}
-> T.Text
{- ^ /@dirToPull@/: Subdirectory path -}
-> Maybe ([T.Text])
{- ^ /@refsToFetch@/: Optional list of refs; if 'Nothing', fetch all configured refs -}
-> [OSTree.Flags.RepoPullFlags]
{- ^ /@flags@/: Options controlling fetch behavior -}
-> Maybe (b)
{- ^ /@progress@/: Progress -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoPullOneDir self remoteName dirToPull refsToFetch flags progress cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
remoteName' <- textToCString remoteName
dirToPull' <- textToCString dirToPull
maybeRefsToFetch <- case refsToFetch of
Nothing -> return nullPtr
Just jRefsToFetch -> do
jRefsToFetch' <- packZeroTerminatedUTF8CArray jRefsToFetch
return jRefsToFetch'
let flags' = gflagsToWord flags
maybeProgress <- case progress of
Nothing -> return nullPtr
Just jProgress -> do
jProgress' <- unsafeManagedPtrCastPtr jProgress
return jProgress'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_pull_one_dir self' remoteName' dirToPull' maybeRefsToFetch flags' maybeProgress maybeCancellable
touchManagedPtr self
whenJust progress touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem remoteName'
freeMem dirToPull'
mapZeroTerminatedCArray freeMem maybeRefsToFetch
freeMem maybeRefsToFetch
return ()
) (do
freeMem remoteName'
freeMem dirToPull'
mapZeroTerminatedCArray freeMem maybeRefsToFetch
freeMem maybeRefsToFetch
)
#if ENABLE_OVERLOADING
data RepoPullOneDirMethodInfo
instance (signature ~ (T.Text -> T.Text -> Maybe ([T.Text]) -> [OSTree.Flags.RepoPullFlags] -> Maybe (b) -> Maybe (c) -> m ()), MonadIO m, IsRepo a, OSTree.AsyncProgress.IsAsyncProgress b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoPullOneDirMethodInfo a signature where
overloadedMethod _ = repoPullOneDir
#endif
-- method Repo::pull_with_options
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote_name_or_baseurl", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name of remote or file:// url", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A GVariant a{sv} with an extensible set of flags.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "progress", argType = TInterface (Name {namespace = "OSTree", name = "AsyncProgress"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Progress", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_pull_with_options" ostree_repo_pull_with_options ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote_name_or_baseurl : TBasicType TUTF8
Ptr GVariant -> -- options : TVariant
Ptr OSTree.AsyncProgress.AsyncProgress -> -- progress : TInterface (Name {namespace = "OSTree", name = "AsyncProgress"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Like 'GI.OSTree.Objects.Repo.repoPull', but supports an extensible set of flags.
The following are currently defined:
* refs (as): Array of string refs
* collection-refs (a(sss)): Array of (collection ID, ref name, checksum) tuples to pull;
mutually exclusive with @refs@ and @override-commit-ids@. Checksums may be the empty
string to pull the latest commit for that ref
* flags (i): An instance of 'GI.OSTree.Flags.RepoPullFlags'
* subdir (s): Pull just this subdirectory
* subdirs (as): Pull just these subdirectories
* override-remote-name (s): If local, add this remote to refspec
* gpg-verify (b): GPG verify commits
* gpg-verify-summary (b): GPG verify summary
* depth (i): How far in the history to traverse; default is 0, -1 means infinite
* disable-static-deltas (b): Do not use static deltas
* require-static-deltas (b): Require static deltas
* override-commit-ids (as): Array of specific commit IDs to fetch for refs
* timestamp-check (b): Verify commit timestamps are newer than current (when pulling via ref); Since: 2017.11
* metadata-size-restriction (t): Restrict metadata objects to a maximum number of bytes; 0 to disable. Since: 2018.9
* dry-run (b): Only print information on what will be downloaded (requires static deltas)
* override-url (s): Fetch objects from this URL if remote specifies no metalink in options
* inherit-transaction (b): Don\'t initiate, finish or abort a transaction, useful to do multiple pulls in one transaction.
* http-headers (a(ss)): Additional headers to add to all HTTP requests
* update-frequency (u): Frequency to call the async progress callback in milliseconds, if any; only values higher than 0 are valid
* localcache-repos (as): File paths for local repos to use as caches when doing remote fetches
* append-user-agent (s): Additional string to append to the user agent
* n-network-retries (u): Number of times to retry each download on receiving
a transient network error, such as a socket timeout; default is 5, 0
means return errors without retrying. Since: 2018.6
* ref-keyring-map (a(sss)): Array of (collection ID, ref name, keyring
remote name) tuples specifying which remote\'s keyring should be used when
doing GPG verification of each collection-ref. This is useful to prevent a
remote from serving malicious updates to refs which did not originate from
it. This can be a subset or superset of the refs being pulled; any ref
not being pulled will be ignored and any ref without a keyring remote
will be verified with the keyring of the remote being pulled from.
Since: 2019.2
-}
repoPullWithOptions ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, OSTree.AsyncProgress.IsAsyncProgress b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@remoteNameOrBaseurl@/: Name of remote or file:\/\/ url -}
-> GVariant
{- ^ /@options@/: A GVariant a{sv} with an extensible set of flags. -}
-> Maybe (b)
{- ^ /@progress@/: Progress -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoPullWithOptions self remoteNameOrBaseurl options progress cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
remoteNameOrBaseurl' <- textToCString remoteNameOrBaseurl
options' <- unsafeManagedPtrGetPtr options
maybeProgress <- case progress of
Nothing -> return nullPtr
Just jProgress -> do
jProgress' <- unsafeManagedPtrCastPtr jProgress
return jProgress'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_pull_with_options self' remoteNameOrBaseurl' options' maybeProgress maybeCancellable
touchManagedPtr self
touchManagedPtr options
whenJust progress touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem remoteNameOrBaseurl'
return ()
) (do
freeMem remoteNameOrBaseurl'
)
#if ENABLE_OVERLOADING
data RepoPullWithOptionsMethodInfo
instance (signature ~ (T.Text -> GVariant -> Maybe (b) -> Maybe (c) -> m ()), MonadIO m, IsRepo a, OSTree.AsyncProgress.IsAsyncProgress b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoPullWithOptionsMethodInfo a signature where
overloadedMethod _ = repoPullWithOptions
#endif
-- method Repo::query_object_storage_size
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sha256", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_size", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Size in bytes object occupies physically", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_query_object_storage_size" ostree_repo_query_object_storage_size ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- sha256 : TBasicType TUTF8
Ptr Word64 -> -- out_size : TBasicType TUInt64
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Return the size in bytes of object with checksum /@sha256@/, after any
compression has been applied.
-}
repoQueryObjectStorageSize ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> T.Text
{- ^ /@sha256@/: Checksum -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m (Word64)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoQueryObjectStorageSize self objtype sha256 cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
sha256' <- textToCString sha256
outSize <- allocMem :: IO (Ptr Word64)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_query_object_storage_size self' objtype' sha256' outSize maybeCancellable
outSize' <- peek outSize
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem sha256'
freeMem outSize
return outSize'
) (do
freeMem sha256'
freeMem outSize
)
#if ENABLE_OVERLOADING
data RepoQueryObjectStorageSizeMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> T.Text -> Maybe (b) -> m (Word64)), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoQueryObjectStorageSizeMethodInfo a signature where
overloadedMethod _ = repoQueryObjectStorageSize
#endif
-- method Repo::read_commit
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ref", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Ref or ASCII checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_root", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepoFile corresponding to the root", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_commit", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The resolved commit checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_read_commit" ostree_repo_read_commit ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- ref : TBasicType TUTF8
Ptr (Ptr Gio.File.File) -> -- out_root : TInterface (Name {namespace = "Gio", name = "File"})
Ptr CString -> -- out_commit : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Load the content for /@rev@/ into /@outRoot@/.
-}
repoReadCommit ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@ref@/: Ref or ASCII checksum -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ((Gio.File.File, T.Text))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoReadCommit self ref cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
ref' <- textToCString ref
outRoot <- allocMem :: IO (Ptr (Ptr Gio.File.File))
outCommit <- allocMem :: IO (Ptr CString)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_read_commit self' ref' outRoot outCommit maybeCancellable
outRoot' <- peek outRoot
outRoot'' <- (wrapObject Gio.File.File) outRoot'
outCommit' <- peek outCommit
outCommit'' <- cstringToText outCommit'
freeMem outCommit'
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem ref'
freeMem outRoot
freeMem outCommit
return (outRoot'', outCommit'')
) (do
freeMem ref'
freeMem outRoot
freeMem outCommit
)
#if ENABLE_OVERLOADING
data RepoReadCommitMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> m ((Gio.File.File, T.Text))), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoReadCommitMethodInfo a signature where
overloadedMethod _ = repoReadCommit
#endif
-- method Repo::read_commit_detached_metadata
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII SHA256 commit checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_metadata", argType = TVariant, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Metadata associated with commit in with format \"a{sv}\", or %NULL if none exists", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_read_commit_detached_metadata" ostree_repo_read_commit_detached_metadata ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- checksum : TBasicType TUTF8
Ptr (Ptr GVariant) -> -- out_metadata : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
OSTree commits can have arbitrary metadata associated; this
function retrieves them. If none exists, /@outMetadata@/ will be set
to 'Nothing'.
-}
repoReadCommitDetachedMetadata ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@checksum@/: ASCII SHA256 commit checksum -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m (GVariant)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoReadCommitDetachedMetadata self checksum cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
checksum' <- textToCString checksum
outMetadata <- allocMem :: IO (Ptr (Ptr GVariant))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_read_commit_detached_metadata self' checksum' outMetadata maybeCancellable
outMetadata' <- peek outMetadata
outMetadata'' <- B.GVariant.wrapGVariantPtr outMetadata'
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem checksum'
freeMem outMetadata
return outMetadata''
) (do
freeMem checksum'
freeMem outMetadata
)
#if ENABLE_OVERLOADING
data RepoReadCommitDetachedMetadataMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> m (GVariant)), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoReadCommitDetachedMetadataMethodInfo a signature where
overloadedMethod _ = repoReadCommitDetachedMetadata
#endif
-- method Repo::regenerate_summary
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "additional_metadata", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A GVariant of type a{sv}, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_regenerate_summary" ostree_repo_regenerate_summary ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr GVariant -> -- additional_metadata : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
An OSTree repository can contain a high level \"summary\" file that
describes the available branches and other metadata.
If the timetable for making commits and updating the summary file is fairly
regular, setting the @ostree.summary.expires@ key in /@additionalMetadata@/
will aid clients in working out when to check for updates.
It is regenerated automatically after any ref is
added, removed, or updated if @core\/auto-update-summary@ is set.
If the @core\/collection-id@ key is set in the configuration, it will be
included as @/OSTREE_SUMMARY_COLLECTION_ID/@ in the summary file. Refs that
have associated collection IDs will be included in the generated summary
file, listed under the @/OSTREE_SUMMARY_COLLECTION_MAP/@ key. Collection IDs
and refs in @/OSTREE_SUMMARY_COLLECTION_MAP/@ are guaranteed to be in
lexicographic order.
Locking: exclusive
-}
repoRegenerateSummary ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> Maybe (GVariant)
{- ^ /@additionalMetadata@/: A GVariant of type a{sv}, or 'Nothing' -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoRegenerateSummary self additionalMetadata cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeAdditionalMetadata <- case additionalMetadata of
Nothing -> return nullPtr
Just jAdditionalMetadata -> do
jAdditionalMetadata' <- unsafeManagedPtrGetPtr jAdditionalMetadata
return jAdditionalMetadata'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_regenerate_summary self' maybeAdditionalMetadata maybeCancellable
touchManagedPtr self
whenJust additionalMetadata touchManagedPtr
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoRegenerateSummaryMethodInfo
instance (signature ~ (Maybe (GVariant) -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoRegenerateSummaryMethodInfo a signature where
overloadedMethod _ = repoRegenerateSummary
#endif
-- method Repo::reload_config
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_reload_config" ostree_repo_reload_config ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
By default, an 'GI.OSTree.Objects.Repo.Repo' will cache the remote configuration and its
own repo\/config data. This API can be used to reload it.
-}
repoReloadConfig ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: repo -}
-> Maybe (b)
{- ^ /@cancellable@/: cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoReloadConfig self cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_reload_config self' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoReloadConfigMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoReloadConfigMethodInfo a signature where
overloadedMethod _ = repoReloadConfig
#endif
-- method Repo::remote_add
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name of remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "url", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "URL for remote (if URL begins with metalink=, it will be used as such)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GVariant of type a{sv}", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_remote_add" ostree_repo_remote_add ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- name : TBasicType TUTF8
CString -> -- url : TBasicType TUTF8
Ptr GVariant -> -- options : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Create a new remote named /@name@/ pointing to /@url@/. If /@options@/ is
provided, then it will be mapped to 'GI.GLib.Structs.KeyFile.KeyFile' entries, where the
GVariant dictionary key is an option string, and the value is
mapped as follows:
* s: 'GI.GLib.Structs.KeyFile.keyFileSetString'
* b: 'GI.GLib.Structs.KeyFile.keyFileSetBoolean'
* as: 'GI.GLib.Structs.KeyFile.keyFileSetStringList'
-}
repoRemoteAdd ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@name@/: Name of remote -}
-> T.Text
{- ^ /@url@/: URL for remote (if URL begins with metalink=, it will be used as such) -}
-> Maybe (GVariant)
{- ^ /@options@/: GVariant of type a{sv} -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoRemoteAdd self name url options cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
url' <- textToCString url
maybeOptions <- case options of
Nothing -> return nullPtr
Just jOptions -> do
jOptions' <- unsafeManagedPtrGetPtr jOptions
return jOptions'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_remote_add self' name' url' maybeOptions maybeCancellable
touchManagedPtr self
whenJust options touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem name'
freeMem url'
return ()
) (do
freeMem name'
freeMem url'
)
#if ENABLE_OVERLOADING
data RepoRemoteAddMethodInfo
instance (signature ~ (T.Text -> T.Text -> Maybe (GVariant) -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoRemoteAddMethodInfo a signature where
overloadedMethod _ = repoRemoteAdd
#endif
-- method Repo::remote_change
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sysroot", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "System root", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "changeop", argType = TInterface (Name {namespace = "OSTree", name = "RepoRemoteChange"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Operation to perform", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name of remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "url", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "URL for remote (if URL begins with metalink=, it will be used as such)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GVariant of type a{sv}", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_remote_change" ostree_repo_remote_change ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.File.File -> -- sysroot : TInterface (Name {namespace = "Gio", name = "File"})
CUInt -> -- changeop : TInterface (Name {namespace = "OSTree", name = "RepoRemoteChange"})
CString -> -- name : TBasicType TUTF8
CString -> -- url : TBasicType TUTF8
Ptr GVariant -> -- options : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
A combined function handling the equivalent of
'GI.OSTree.Objects.Repo.repoRemoteAdd', 'GI.OSTree.Objects.Repo.repoRemoteDelete', with more
options.
-}
repoRemoteChange ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.File.IsFile b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> Maybe (b)
{- ^ /@sysroot@/: System root -}
-> OSTree.Enums.RepoRemoteChange
{- ^ /@changeop@/: Operation to perform -}
-> T.Text
{- ^ /@name@/: Name of remote -}
-> T.Text
{- ^ /@url@/: URL for remote (if URL begins with metalink=, it will be used as such) -}
-> Maybe (GVariant)
{- ^ /@options@/: GVariant of type a{sv} -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoRemoteChange self sysroot changeop name url options cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeSysroot <- case sysroot of
Nothing -> return nullPtr
Just jSysroot -> do
jSysroot' <- unsafeManagedPtrCastPtr jSysroot
return jSysroot'
let changeop' = (fromIntegral . fromEnum) changeop
name' <- textToCString name
url' <- textToCString url
maybeOptions <- case options of
Nothing -> return nullPtr
Just jOptions -> do
jOptions' <- unsafeManagedPtrGetPtr jOptions
return jOptions'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_remote_change self' maybeSysroot changeop' name' url' maybeOptions maybeCancellable
touchManagedPtr self
whenJust sysroot touchManagedPtr
whenJust options touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem name'
freeMem url'
return ()
) (do
freeMem name'
freeMem url'
)
#if ENABLE_OVERLOADING
data RepoRemoteChangeMethodInfo
instance (signature ~ (Maybe (b) -> OSTree.Enums.RepoRemoteChange -> T.Text -> T.Text -> Maybe (GVariant) -> Maybe (c) -> m ()), MonadIO m, IsRepo a, Gio.File.IsFile b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoRemoteChangeMethodInfo a signature where
overloadedMethod _ = repoRemoteChange
#endif
-- method Repo::remote_delete
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name of remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_remote_delete" ostree_repo_remote_delete ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- name : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Delete the remote named /@name@/. It is an error if the provided
remote does not exist.
-}
repoRemoteDelete ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@name@/: Name of remote -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoRemoteDelete self name cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_remote_delete self' name' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem name'
return ()
) (do
freeMem name'
)
#if ENABLE_OVERLOADING
data RepoRemoteDeleteMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoRemoteDeleteMethodInfo a signature where
overloadedMethod _ = repoRemoteDelete
#endif
-- method Repo::remote_fetch_summary
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Self", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "name of a remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_summary", argType = TInterface (Name {namespace = "GLib", name = "Bytes"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for raw summary data, or\n %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_signatures", argType = TInterface (Name {namespace = "GLib", name = "Bytes"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for raw summary\n signature data, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_remote_fetch_summary" ostree_repo_remote_fetch_summary ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- name : TBasicType TUTF8
Ptr (Ptr GLib.Bytes.Bytes) -> -- out_summary : TInterface (Name {namespace = "GLib", name = "Bytes"})
Ptr (Ptr GLib.Bytes.Bytes) -> -- out_signatures : TInterface (Name {namespace = "GLib", name = "Bytes"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Tries to fetch the summary file and any GPG signatures on the summary file
over HTTP, and returns the binary data in /@outSummary@/ and /@outSignatures@/
respectively.
If no summary file exists on the remote server, /@outSummary@/ is set to
/@nULL@/. Likewise if the summary file is not signed, /@outSignatures@/ is
set to /@nULL@/. In either case the function still returns 'True'.
This method does not verify the signature of the downloaded summary file.
Use 'GI.OSTree.Objects.Repo.repoVerifySummary' for that.
Parse the summary data into a 'GVariant' using 'GI.GLib.Structs.Variant.variantNewFromBytes'
with @/OSTREE_SUMMARY_GVARIANT_FORMAT/@ as the format string.
-}
repoRemoteFetchSummary ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Self -}
-> T.Text
{- ^ /@name@/: name of a remote -}
-> Maybe (b)
{- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable' -}
-> m ((GLib.Bytes.Bytes, GLib.Bytes.Bytes))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoRemoteFetchSummary self name cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
outSummary <- allocMem :: IO (Ptr (Ptr GLib.Bytes.Bytes))
outSignatures <- allocMem :: IO (Ptr (Ptr GLib.Bytes.Bytes))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_remote_fetch_summary self' name' outSummary outSignatures maybeCancellable
outSummary' <- peek outSummary
outSummary'' <- (wrapBoxed GLib.Bytes.Bytes) outSummary'
outSignatures' <- peek outSignatures
outSignatures'' <- (wrapBoxed GLib.Bytes.Bytes) outSignatures'
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem name'
freeMem outSummary
freeMem outSignatures
return (outSummary'', outSignatures'')
) (do
freeMem name'
freeMem outSummary
freeMem outSignatures
)
#if ENABLE_OVERLOADING
data RepoRemoteFetchSummaryMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> m ((GLib.Bytes.Bytes, GLib.Bytes.Bytes))), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoRemoteFetchSummaryMethodInfo a signature where
overloadedMethod _ = repoRemoteFetchSummary
#endif
-- method Repo::remote_fetch_summary_with_options
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Self", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "name of a remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A GVariant a{sv} with an extensible set of flags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_summary", argType = TInterface (Name {namespace = "GLib", name = "Bytes"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for raw summary data, or\n %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_signatures", argType = TInterface (Name {namespace = "GLib", name = "Bytes"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for raw summary\n signature data, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_remote_fetch_summary_with_options" ostree_repo_remote_fetch_summary_with_options ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- name : TBasicType TUTF8
Ptr GVariant -> -- options : TVariant
Ptr (Ptr GLib.Bytes.Bytes) -> -- out_summary : TInterface (Name {namespace = "GLib", name = "Bytes"})
Ptr (Ptr GLib.Bytes.Bytes) -> -- out_signatures : TInterface (Name {namespace = "GLib", name = "Bytes"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Like 'GI.OSTree.Objects.Repo.repoRemoteFetchSummary', but supports an extensible set of flags.
The following are currently defined:
* override-url (s): Fetch summary from this URL if remote specifies no metalink in options
* http-headers (a(ss)): Additional headers to add to all HTTP requests
* append-user-agent (s): Additional string to append to the user agent
* n-network-retries (u): Number of times to retry each download on receiving
a transient network error, such as a socket timeout; default is 5, 0
means return errors without retrying
-}
repoRemoteFetchSummaryWithOptions ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Self -}
-> T.Text
{- ^ /@name@/: name of a remote -}
-> Maybe (GVariant)
{- ^ /@options@/: A GVariant a{sv} with an extensible set of flags -}
-> Maybe (b)
{- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable' -}
-> m ((GLib.Bytes.Bytes, GLib.Bytes.Bytes))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoRemoteFetchSummaryWithOptions self name options cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
maybeOptions <- case options of
Nothing -> return nullPtr
Just jOptions -> do
jOptions' <- unsafeManagedPtrGetPtr jOptions
return jOptions'
outSummary <- allocMem :: IO (Ptr (Ptr GLib.Bytes.Bytes))
outSignatures <- allocMem :: IO (Ptr (Ptr GLib.Bytes.Bytes))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_remote_fetch_summary_with_options self' name' maybeOptions outSummary outSignatures maybeCancellable
outSummary' <- peek outSummary
outSummary'' <- (wrapBoxed GLib.Bytes.Bytes) outSummary'
outSignatures' <- peek outSignatures
outSignatures'' <- (wrapBoxed GLib.Bytes.Bytes) outSignatures'
touchManagedPtr self
whenJust options touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem name'
freeMem outSummary
freeMem outSignatures
return (outSummary'', outSignatures'')
) (do
freeMem name'
freeMem outSummary
freeMem outSignatures
)
#if ENABLE_OVERLOADING
data RepoRemoteFetchSummaryWithOptionsMethodInfo
instance (signature ~ (T.Text -> Maybe (GVariant) -> Maybe (b) -> m ((GLib.Bytes.Bytes, GLib.Bytes.Bytes))), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoRemoteFetchSummaryWithOptionsMethodInfo a signature where
overloadedMethod _ = repoRemoteFetchSummaryWithOptions
#endif
-- method Repo::remote_get_gpg_verify
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name of remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_gpg_verify", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Remote's GPG option", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_remote_get_gpg_verify" ostree_repo_remote_get_gpg_verify ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- name : TBasicType TUTF8
Ptr CInt -> -- out_gpg_verify : TBasicType TBoolean
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Return whether GPG verification is enabled for the remote named /@name@/
through /@outGpgVerify@/. It is an error if the provided remote does
not exist.
-}
repoRemoteGetGpgVerify ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@name@/: Name of remote -}
-> m (Bool)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoRemoteGetGpgVerify self name = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
outGpgVerify <- allocMem :: IO (Ptr CInt)
onException (do
_ <- propagateGError $ ostree_repo_remote_get_gpg_verify self' name' outGpgVerify
outGpgVerify' <- peek outGpgVerify
let outGpgVerify'' = (/= 0) outGpgVerify'
touchManagedPtr self
freeMem name'
freeMem outGpgVerify
return outGpgVerify''
) (do
freeMem name'
freeMem outGpgVerify
)
#if ENABLE_OVERLOADING
data RepoRemoteGetGpgVerifyMethodInfo
instance (signature ~ (T.Text -> m (Bool)), MonadIO m, IsRepo a) => O.MethodInfo RepoRemoteGetGpgVerifyMethodInfo a signature where
overloadedMethod _ = repoRemoteGetGpgVerify
#endif
-- method Repo::remote_get_gpg_verify_summary
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name of remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_gpg_verify_summary", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Remote's GPG option", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_remote_get_gpg_verify_summary" ostree_repo_remote_get_gpg_verify_summary ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- name : TBasicType TUTF8
Ptr CInt -> -- out_gpg_verify_summary : TBasicType TBoolean
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Return whether GPG verification of the summary is enabled for the remote
named /@name@/ through /@outGpgVerifySummary@/. It is an error if the provided
remote does not exist.
-}
repoRemoteGetGpgVerifySummary ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@name@/: Name of remote -}
-> m (Bool)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoRemoteGetGpgVerifySummary self name = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
outGpgVerifySummary <- allocMem :: IO (Ptr CInt)
onException (do
_ <- propagateGError $ ostree_repo_remote_get_gpg_verify_summary self' name' outGpgVerifySummary
outGpgVerifySummary' <- peek outGpgVerifySummary
let outGpgVerifySummary'' = (/= 0) outGpgVerifySummary'
touchManagedPtr self
freeMem name'
freeMem outGpgVerifySummary
return outGpgVerifySummary''
) (do
freeMem name'
freeMem outGpgVerifySummary
)
#if ENABLE_OVERLOADING
data RepoRemoteGetGpgVerifySummaryMethodInfo
instance (signature ~ (T.Text -> m (Bool)), MonadIO m, IsRepo a) => O.MethodInfo RepoRemoteGetGpgVerifySummaryMethodInfo a signature where
overloadedMethod _ = repoRemoteGetGpgVerifySummary
#endif
-- method Repo::remote_get_url
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name of remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_url", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Remote's URL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_remote_get_url" ostree_repo_remote_get_url ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- name : TBasicType TUTF8
Ptr CString -> -- out_url : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Return the URL of the remote named /@name@/ through /@outUrl@/. It is an
error if the provided remote does not exist.
-}
repoRemoteGetUrl ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@name@/: Name of remote -}
-> m (T.Text)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoRemoteGetUrl self name = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
outUrl <- allocMem :: IO (Ptr CString)
onException (do
_ <- propagateGError $ ostree_repo_remote_get_url self' name' outUrl
outUrl' <- peek outUrl
outUrl'' <- cstringToText outUrl'
freeMem outUrl'
touchManagedPtr self
freeMem name'
freeMem outUrl
return outUrl''
) (do
freeMem name'
freeMem outUrl
)
#if ENABLE_OVERLOADING
data RepoRemoteGetUrlMethodInfo
instance (signature ~ (T.Text -> m (T.Text)), MonadIO m, IsRepo a) => O.MethodInfo RepoRemoteGetUrlMethodInfo a signature where
overloadedMethod _ = repoRemoteGetUrl
#endif
-- method Repo::remote_gpg_import
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Self", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "name of a remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source_stream", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GInputStream, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_ids", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a %NULL-terminated array of GPG key IDs, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_imported", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "return location for the number of imported\n keys, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_remote_gpg_import" ostree_repo_remote_gpg_import ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- name : TBasicType TUTF8
Ptr Gio.InputStream.InputStream -> -- source_stream : TInterface (Name {namespace = "Gio", name = "InputStream"})
Ptr CString -> -- key_ids : TCArray True (-1) (-1) (TBasicType TUTF8)
Word32 -> -- out_imported : TBasicType TUInt
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Imports one or more GPG keys from the open /@sourceStream@/, or from the
user\'s personal keyring if /@sourceStream@/ is 'Nothing'. The /@keyIds@/ array
can optionally restrict which keys are imported. If /@keyIds@/ is 'Nothing',
then all keys are imported.
The imported keys will be used to conduct GPG verification when pulling
from the remote named /@name@/.
-}
repoRemoteGpgImport ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Self -}
-> T.Text
{- ^ /@name@/: name of a remote -}
-> Maybe (b)
{- ^ /@sourceStream@/: a 'GI.Gio.Objects.InputStream.InputStream', or 'Nothing' -}
-> Maybe ([T.Text])
{- ^ /@keyIds@/: a 'Nothing'-terminated array of GPG key IDs, or 'Nothing' -}
-> Word32
{- ^ /@outImported@/: return location for the number of imported
keys, or 'Nothing' -}
-> Maybe (c)
{- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable' -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoRemoteGpgImport self name sourceStream keyIds outImported cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
name' <- textToCString name
maybeSourceStream <- case sourceStream of
Nothing -> return nullPtr
Just jSourceStream -> do
jSourceStream' <- unsafeManagedPtrCastPtr jSourceStream
return jSourceStream'
maybeKeyIds <- case keyIds of
Nothing -> return nullPtr
Just jKeyIds -> do
jKeyIds' <- packZeroTerminatedUTF8CArray jKeyIds
return jKeyIds'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_remote_gpg_import self' name' maybeSourceStream maybeKeyIds outImported maybeCancellable
touchManagedPtr self
whenJust sourceStream touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem name'
mapZeroTerminatedCArray freeMem maybeKeyIds
freeMem maybeKeyIds
return ()
) (do
freeMem name'
mapZeroTerminatedCArray freeMem maybeKeyIds
freeMem maybeKeyIds
)
#if ENABLE_OVERLOADING
data RepoRemoteGpgImportMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> Maybe ([T.Text]) -> Word32 -> Maybe (c) -> m ()), MonadIO m, IsRepo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoRemoteGpgImportMethodInfo a signature where
overloadedMethod _ = repoRemoteGpgImport
#endif
-- method Repo::remote_list
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_n_remotes", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Number of remotes available", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : [Arg {argCName = "out_n_remotes", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Number of remotes available", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- returnType : Just (TCArray False (-1) 1 (TBasicType TUTF8))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_remote_list" ostree_repo_remote_list ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Word32 -> -- out_n_remotes : TBasicType TUInt
IO (Ptr CString)
{- |
List available remote names in an 'GI.OSTree.Objects.Repo.Repo'. Remote names are sorted
alphabetically. If no remotes are available the function returns 'Nothing'.
-}
repoRemoteList ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> m [T.Text]
{- ^ __Returns:__ a 'Nothing'-terminated
array of remote names -}
repoRemoteList self = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
outNRemotes <- allocMem :: IO (Ptr Word32)
result <- ostree_repo_remote_list self' outNRemotes
outNRemotes' <- peek outNRemotes
checkUnexpectedReturnNULL "repoRemoteList" result
result' <- (unpackUTF8CArrayWithLength outNRemotes') result
(mapCArrayWithLength outNRemotes') freeMem result
freeMem result
touchManagedPtr self
freeMem outNRemotes
return result'
#if ENABLE_OVERLOADING
data RepoRemoteListMethodInfo
instance (signature ~ (m [T.Text]), MonadIO m, IsRepo a) => O.MethodInfo RepoRemoteListMethodInfo a signature where
overloadedMethod _ = repoRemoteList
#endif
-- XXX Could not generate method Repo::remote_list_collection_refs
-- Error was : Not implemented: "GHashTable element of type TInterface (Name {namespace = \"OSTree\", name = \"CollectionRef\"}) unsupported."
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoRemoteListCollectionRefsMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "remoteListCollectionRefs" Repo) => O.MethodInfo RepoRemoteListCollectionRefsMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- XXX Could not generate method Repo::remote_list_refs
-- Error was : Not implemented: "Hash table argument with transfer = Container? outAllRefs'"
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoRemoteListRefsMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "remoteListRefs" Repo) => O.MethodInfo RepoRemoteListRefsMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- method Repo::resolve_collection_ref
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ref", argType = TInterface (Name {namespace = "OSTree", name = "CollectionRef"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a collection\8211ref to resolve", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allow_noent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE to not throw an error if @ref doesn\8217t exist", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "OSTree", name = "RepoResolveRevExtFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "options controlling behaviour", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_rev", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = True, argDoc = Documentation {rawDocText = Just "return location for\n the checksum corresponding to @ref, or %NULL if @allow_noent is %TRUE and\n the @ref could not be found", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_resolve_collection_ref" ostree_repo_resolve_collection_ref ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr OSTree.CollectionRef.CollectionRef -> -- ref : TInterface (Name {namespace = "OSTree", name = "CollectionRef"})
CInt -> -- allow_noent : TBasicType TBoolean
CUInt -> -- flags : TInterface (Name {namespace = "OSTree", name = "RepoResolveRevExtFlags"})
Ptr CString -> -- out_rev : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Look up the checksum for the given collection–ref, returning it in /@outRev@/.
This will search through the mirrors and remote refs.
If /@allowNoent@/ is 'True' and the given /@ref@/ cannot be found, 'True' will be
returned and /@outRev@/ will be set to 'Nothing'. If /@allowNoent@/ is 'False' and
the given /@ref@/ cannot be found, a 'GI.Gio.Enums.IOErrorEnumNotFound' error will be
returned.
If you want to check only local refs, not remote or mirrored ones, use the
flag 'GI.OSTree.Flags.RepoResolveRevExtFlagsLocalOnly'. This is analogous to using
'GI.OSTree.Objects.Repo.repoResolveRevExt' but for collection-refs.
/Since: 2018.6/
-}
repoResolveCollectionRef ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> OSTree.CollectionRef.CollectionRef
{- ^ /@ref@/: a collection–ref to resolve -}
-> Bool
{- ^ /@allowNoent@/: 'True' to not throw an error if /@ref@/ doesn’t exist -}
-> [OSTree.Flags.RepoResolveRevExtFlags]
{- ^ /@flags@/: options controlling behaviour -}
-> Maybe (b)
{- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -}
-> m ((Maybe T.Text))
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoResolveCollectionRef self ref allowNoent flags cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
ref' <- unsafeManagedPtrGetPtr ref
let allowNoent' = (fromIntegral . fromEnum) allowNoent
let flags' = gflagsToWord flags
outRev <- allocMem :: IO (Ptr CString)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_resolve_collection_ref self' ref' allowNoent' flags' outRev maybeCancellable
outRev' <- peek outRev
maybeOutRev' <- convertIfNonNull outRev' $ \outRev'' -> do
outRev''' <- cstringToText outRev''
return outRev'''
freeMem outRev'
touchManagedPtr self
touchManagedPtr ref
whenJust cancellable touchManagedPtr
freeMem outRev
return maybeOutRev'
) (do
freeMem outRev
)
#if ENABLE_OVERLOADING
data RepoResolveCollectionRefMethodInfo
instance (signature ~ (OSTree.CollectionRef.CollectionRef -> Bool -> [OSTree.Flags.RepoResolveRevExtFlags] -> Maybe (b) -> m ((Maybe T.Text))), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoResolveCollectionRefMethodInfo a signature where
overloadedMethod _ = repoResolveCollectionRef
#endif
-- method Repo::resolve_keyring_for_collection
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "collection_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the collection ID to look up a keyring for", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "Remote"}))
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_resolve_keyring_for_collection" ostree_repo_resolve_keyring_for_collection ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- collection_id : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO (Ptr OSTree.Remote.Remote)
{- |
Find the GPG keyring for the given /@collectionId@/, using the local
configuration from the given 'GI.OSTree.Objects.Repo.Repo'. This will search the configured
remotes for ones whose @collection-id@ key matches /@collectionId@/, and will
return the first matching remote.
If multiple remotes match and have different keyrings, a debug message will
be emitted, and the first result will be returned. It is expected that the
keyrings should match.
If no match can be found, a 'GI.Gio.Enums.IOErrorEnumNotFound' error will be returned.
/Since: 2018.6/
-}
repoResolveKeyringForCollection ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> T.Text
{- ^ /@collectionId@/: the collection ID to look up a keyring for -}
-> Maybe (b)
{- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -}
-> m OSTree.Remote.Remote
{- ^ __Returns:__ 'GI.OSTree.Structs.Remote.Remote' containing the GPG keyring for
/@collectionId@/ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoResolveKeyringForCollection self collectionId cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
collectionId' <- textToCString collectionId
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ ostree_repo_resolve_keyring_for_collection self' collectionId' maybeCancellable
checkUnexpectedReturnNULL "repoResolveKeyringForCollection" result
result' <- (wrapBoxed OSTree.Remote.Remote) result
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem collectionId'
return result'
) (do
freeMem collectionId'
)
#if ENABLE_OVERLOADING
data RepoResolveKeyringForCollectionMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> m OSTree.Remote.Remote), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoResolveKeyringForCollectionMethodInfo a signature where
overloadedMethod _ = repoResolveKeyringForCollection
#endif
-- method Repo::resolve_rev
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refspec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A refspec", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allow_noent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Do not throw an error if refspec does not exist", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_rev", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A checksum,or %NULL if @allow_noent is true and it does not exist", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_resolve_rev" ostree_repo_resolve_rev ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- refspec : TBasicType TUTF8
CInt -> -- allow_noent : TBasicType TBoolean
Ptr CString -> -- out_rev : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Look up the given refspec, returning the checksum it references in
the parameter /@outRev@/. Will fall back on remote directory if cannot
find the given refspec in local.
-}
repoResolveRev ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@refspec@/: A refspec -}
-> Bool
{- ^ /@allowNoent@/: Do not throw an error if refspec does not exist -}
-> m (T.Text)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoResolveRev self refspec allowNoent = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
refspec' <- textToCString refspec
let allowNoent' = (fromIntegral . fromEnum) allowNoent
outRev <- allocMem :: IO (Ptr CString)
onException (do
_ <- propagateGError $ ostree_repo_resolve_rev self' refspec' allowNoent' outRev
outRev' <- peek outRev
outRev'' <- cstringToText outRev'
freeMem outRev'
touchManagedPtr self
freeMem refspec'
freeMem outRev
return outRev''
) (do
freeMem refspec'
freeMem outRev
)
#if ENABLE_OVERLOADING
data RepoResolveRevMethodInfo
instance (signature ~ (T.Text -> Bool -> m (T.Text)), MonadIO m, IsRepo a) => O.MethodInfo RepoResolveRevMethodInfo a signature where
overloadedMethod _ = repoResolveRev
#endif
-- method Repo::resolve_rev_ext
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refspec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A refspec", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allow_noent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Do not throw an error if refspec does not exist", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "OSTree", name = "RepoResolveRevExtFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Options controlling behavior", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_rev", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A checksum,or %NULL if @allow_noent is true and it does not exist", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_resolve_rev_ext" ostree_repo_resolve_rev_ext ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- refspec : TBasicType TUTF8
CInt -> -- allow_noent : TBasicType TBoolean
CUInt -> -- flags : TInterface (Name {namespace = "OSTree", name = "RepoResolveRevExtFlags"})
Ptr CString -> -- out_rev : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Look up the given refspec, returning the checksum it references in
the parameter /@outRev@/. Differently from 'GI.OSTree.Objects.Repo.repoResolveRev',
this will not fall back to searching through remote repos if a
local ref is specified but not found.
The flag 'GI.OSTree.Flags.RepoResolveRevExtFlagsLocalOnly' is implied so
using it has no effect.
-}
repoResolveRevExt ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@refspec@/: A refspec -}
-> Bool
{- ^ /@allowNoent@/: Do not throw an error if refspec does not exist -}
-> [OSTree.Flags.RepoResolveRevExtFlags]
{- ^ /@flags@/: Options controlling behavior -}
-> m (T.Text)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoResolveRevExt self refspec allowNoent flags = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
refspec' <- textToCString refspec
let allowNoent' = (fromIntegral . fromEnum) allowNoent
let flags' = gflagsToWord flags
outRev <- allocMem :: IO (Ptr CString)
onException (do
_ <- propagateGError $ ostree_repo_resolve_rev_ext self' refspec' allowNoent' flags' outRev
outRev' <- peek outRev
outRev'' <- cstringToText outRev'
freeMem outRev'
touchManagedPtr self
freeMem refspec'
freeMem outRev
return outRev''
) (do
freeMem refspec'
freeMem outRev
)
#if ENABLE_OVERLOADING
data RepoResolveRevExtMethodInfo
instance (signature ~ (T.Text -> Bool -> [OSTree.Flags.RepoResolveRevExtFlags] -> m (T.Text)), MonadIO m, IsRepo a) => O.MethodInfo RepoResolveRevExtMethodInfo a signature where
overloadedMethod _ = repoResolveRevExt
#endif
-- method Repo::scan_hardlinks
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_scan_hardlinks" ostree_repo_scan_hardlinks ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
This function is deprecated in favor of using 'GI.OSTree.Structs.RepoDevInoCache.repoDevInoCacheNew',
which allows a precise mapping to be built up between hardlink checkout files
and their checksums between @ostree_repo_checkout_at()@ and
@ostree_repo_write_directory_to_mtree()@.
When invoking 'GI.OSTree.Objects.Repo.repoWriteDirectoryToMtree', it has to compute the
checksum of all files. If your commit contains hardlinks from a checkout,
this functions builds a mapping of device numbers and inodes to their
checksum.
There is an upfront cost to creating this mapping, as this will scan the
entire objects directory. If your commit is composed of mostly hardlinks to
existing ostree objects, then this will speed up considerably, so call it
before you call 'GI.OSTree.Objects.Repo.repoWriteDirectoryToMtree' or similar. However,
'GI.OSTree.Structs.RepoDevInoCache.repoDevInoCacheNew' is better as it avoids scanning all objects.
Multithreading: This function is *not* MT safe.
-}
repoScanHardlinks ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoScanHardlinks self cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_scan_hardlinks self' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoScanHardlinksMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoScanHardlinksMethodInfo a signature where
overloadedMethod _ = repoScanHardlinks
#endif
-- method Repo::set_alias_ref_immediate
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A remote for the ref", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ref", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The ref to write", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The ref target to point it to, or %NULL to unset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GCancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_set_alias_ref_immediate" ostree_repo_set_alias_ref_immediate ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote : TBasicType TUTF8
CString -> -- ref : TBasicType TUTF8
CString -> -- target : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Like 'GI.OSTree.Objects.Repo.repoSetRefImmediate', but creates an alias.
-}
repoSetAliasRefImmediate ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> Maybe (T.Text)
{- ^ /@remote@/: A remote for the ref -}
-> T.Text
{- ^ /@ref@/: The ref to write -}
-> Maybe (T.Text)
{- ^ /@target@/: The ref target to point it to, or 'Nothing' to unset -}
-> Maybe (b)
{- ^ /@cancellable@/: GCancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoSetAliasRefImmediate self remote ref target cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeRemote <- case remote of
Nothing -> return nullPtr
Just jRemote -> do
jRemote' <- textToCString jRemote
return jRemote'
ref' <- textToCString ref
maybeTarget <- case target of
Nothing -> return nullPtr
Just jTarget -> do
jTarget' <- textToCString jTarget
return jTarget'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_set_alias_ref_immediate self' maybeRemote ref' maybeTarget maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem maybeRemote
freeMem ref'
freeMem maybeTarget
return ()
) (do
freeMem maybeRemote
freeMem ref'
freeMem maybeTarget
)
#if ENABLE_OVERLOADING
data RepoSetAliasRefImmediateMethodInfo
instance (signature ~ (Maybe (T.Text) -> T.Text -> Maybe (T.Text) -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoSetAliasRefImmediateMethodInfo a signature where
overloadedMethod _ = repoSetAliasRefImmediate
#endif
-- method Repo::set_cache_dir
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dfd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "directory fd", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "subpath in @dfd", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_set_cache_dir" ostree_repo_set_cache_dir ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Int32 -> -- dfd : TBasicType TInt
CString -> -- path : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Set a custom location for the cache directory used for e.g.
per-remote summary caches. Setting this manually is useful when
doing operations on a system repo as a user because you don\'t have
write permissions in the repo, where the cache is normally stored.
-}
repoSetCacheDir ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> Int32
{- ^ /@dfd@/: directory fd -}
-> T.Text
{- ^ /@path@/: subpath in /@dfd@/ -}
-> Maybe (b)
{- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable' -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoSetCacheDir self dfd path cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
path' <- textToCString path
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_set_cache_dir self' dfd path' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem path'
return ()
) (do
freeMem path'
)
#if ENABLE_OVERLOADING
data RepoSetCacheDirMethodInfo
instance (signature ~ (Int32 -> T.Text -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoSetCacheDirMethodInfo a signature where
overloadedMethod _ = repoSetCacheDir
#endif
-- method Repo::set_collection_id
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "collection_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "new collection ID, or %NULL to unset it", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_set_collection_id" ostree_repo_set_collection_id ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- collection_id : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Set or clear the collection ID of this repository. See [collection IDs][collection-ids].
The update will be made in memory, but must be written out to the repository
configuration on disk using 'GI.OSTree.Objects.Repo.repoWriteConfig'.
/Since: 2018.6/
-}
repoSetCollectionId ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: an 'GI.OSTree.Objects.Repo.Repo' -}
-> Maybe (T.Text)
{- ^ /@collectionId@/: new collection ID, or 'Nothing' to unset it -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoSetCollectionId self collectionId = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeCollectionId <- case collectionId of
Nothing -> return nullPtr
Just jCollectionId -> do
jCollectionId' <- textToCString jCollectionId
return jCollectionId'
onException (do
_ <- propagateGError $ ostree_repo_set_collection_id self' maybeCollectionId
touchManagedPtr self
freeMem maybeCollectionId
return ()
) (do
freeMem maybeCollectionId
)
#if ENABLE_OVERLOADING
data RepoSetCollectionIdMethodInfo
instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m, IsRepo a) => O.MethodInfo RepoSetCollectionIdMethodInfo a signature where
overloadedMethod _ = repoSetCollectionId
#endif
-- method Repo::set_collection_ref_immediate
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ref", argType = TInterface (Name {namespace = "OSTree", name = "CollectionRef"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The collection\8211ref to write", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The checksum to point it to, or %NULL to unset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GCancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_set_collection_ref_immediate" ostree_repo_set_collection_ref_immediate ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr OSTree.CollectionRef.CollectionRef -> -- ref : TInterface (Name {namespace = "OSTree", name = "CollectionRef"})
CString -> -- checksum : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
This is like 'GI.OSTree.Objects.Repo.repoTransactionSetCollectionRef', except it may be
invoked outside of a transaction. This is presently safe for the
case where we\'re creating or overwriting an existing ref.
/Since: 2018.6/
-}
repoSetCollectionRefImmediate ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> OSTree.CollectionRef.CollectionRef
{- ^ /@ref@/: The collection–ref to write -}
-> Maybe (T.Text)
{- ^ /@checksum@/: The checksum to point it to, or 'Nothing' to unset -}
-> Maybe (b)
{- ^ /@cancellable@/: GCancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoSetCollectionRefImmediate self ref checksum cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
ref' <- unsafeManagedPtrGetPtr ref
maybeChecksum <- case checksum of
Nothing -> return nullPtr
Just jChecksum -> do
jChecksum' <- textToCString jChecksum
return jChecksum'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_set_collection_ref_immediate self' ref' maybeChecksum maybeCancellable
touchManagedPtr self
touchManagedPtr ref
whenJust cancellable touchManagedPtr
freeMem maybeChecksum
return ()
) (do
freeMem maybeChecksum
)
#if ENABLE_OVERLOADING
data RepoSetCollectionRefImmediateMethodInfo
instance (signature ~ (OSTree.CollectionRef.CollectionRef -> Maybe (T.Text) -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoSetCollectionRefImmediateMethodInfo a signature where
overloadedMethod _ = repoSetCollectionRefImmediate
#endif
-- method Repo::set_disable_fsync
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "disable_fsync", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "If %TRUE, do not fsync", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_set_disable_fsync" ostree_repo_set_disable_fsync ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CInt -> -- disable_fsync : TBasicType TBoolean
IO ()
{- |
Disable requests to @/fsync()/@ to stable storage during commits. This
option should only be used by build system tools which are creating
disposable virtual machines, or have higher level mechanisms for
ensuring data consistency.
-}
repoSetDisableFsync ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> Bool
{- ^ /@disableFsync@/: If 'True', do not fsync -}
-> m ()
repoSetDisableFsync self disableFsync = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let disableFsync' = (fromIntegral . fromEnum) disableFsync
ostree_repo_set_disable_fsync self' disableFsync'
touchManagedPtr self
return ()
#if ENABLE_OVERLOADING
data RepoSetDisableFsyncMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsRepo a) => O.MethodInfo RepoSetDisableFsyncMethodInfo a signature where
overloadedMethod _ = repoSetDisableFsync
#endif
-- method Repo::set_ref_immediate
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A remote for the ref", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ref", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The ref to write", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The checksum to point it to, or %NULL to unset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GCancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_set_ref_immediate" ostree_repo_set_ref_immediate ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote : TBasicType TUTF8
CString -> -- ref : TBasicType TUTF8
CString -> -- checksum : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
This is like 'GI.OSTree.Objects.Repo.repoTransactionSetRef', except it may be
invoked outside of a transaction. This is presently safe for the
case where we\'re creating or overwriting an existing ref.
Multithreading: This function is MT safe.
-}
repoSetRefImmediate ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> Maybe (T.Text)
{- ^ /@remote@/: A remote for the ref -}
-> T.Text
{- ^ /@ref@/: The ref to write -}
-> Maybe (T.Text)
{- ^ /@checksum@/: The checksum to point it to, or 'Nothing' to unset -}
-> Maybe (b)
{- ^ /@cancellable@/: GCancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoSetRefImmediate self remote ref checksum cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeRemote <- case remote of
Nothing -> return nullPtr
Just jRemote -> do
jRemote' <- textToCString jRemote
return jRemote'
ref' <- textToCString ref
maybeChecksum <- case checksum of
Nothing -> return nullPtr
Just jChecksum -> do
jChecksum' <- textToCString jChecksum
return jChecksum'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_set_ref_immediate self' maybeRemote ref' maybeChecksum maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem maybeRemote
freeMem ref'
freeMem maybeChecksum
return ()
) (do
freeMem maybeRemote
freeMem ref'
freeMem maybeChecksum
)
#if ENABLE_OVERLOADING
data RepoSetRefImmediateMethodInfo
instance (signature ~ (Maybe (T.Text) -> T.Text -> Maybe (T.Text) -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoSetRefImmediateMethodInfo a signature where
overloadedMethod _ = repoSetRefImmediate
#endif
-- method Repo::sign_commit
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Self", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "commit_checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "SHA256 of given commit to sign", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Use this GPG key id", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "homedir", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GPG home directory, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #GCancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_sign_commit" ostree_repo_sign_commit ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- commit_checksum : TBasicType TUTF8
CString -> -- key_id : TBasicType TUTF8
CString -> -- homedir : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Add a GPG signature to a commit.
-}
repoSignCommit ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Self -}
-> T.Text
{- ^ /@commitChecksum@/: SHA256 of given commit to sign -}
-> T.Text
{- ^ /@keyId@/: Use this GPG key id -}
-> Maybe (T.Text)
{- ^ /@homedir@/: GPG home directory, or 'Nothing' -}
-> Maybe (b)
{- ^ /@cancellable@/: A 'GI.Gio.Objects.Cancellable.Cancellable' -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoSignCommit self commitChecksum keyId homedir cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
commitChecksum' <- textToCString commitChecksum
keyId' <- textToCString keyId
maybeHomedir <- case homedir of
Nothing -> return nullPtr
Just jHomedir -> do
jHomedir' <- textToCString jHomedir
return jHomedir'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_sign_commit self' commitChecksum' keyId' maybeHomedir maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem commitChecksum'
freeMem keyId'
freeMem maybeHomedir
return ()
) (do
freeMem commitChecksum'
freeMem keyId'
freeMem maybeHomedir
)
#if ENABLE_OVERLOADING
data RepoSignCommitMethodInfo
instance (signature ~ (T.Text -> T.Text -> Maybe (T.Text) -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoSignCommitMethodInfo a signature where
overloadedMethod _ = repoSignCommit
#endif
-- method Repo::sign_delta
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Self", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_commit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "From commit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_commit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "To commit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "key id", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "homedir", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "homedir", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_sign_delta" ostree_repo_sign_delta ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- from_commit : TBasicType TUTF8
CString -> -- to_commit : TBasicType TUTF8
CString -> -- key_id : TBasicType TUTF8
CString -> -- homedir : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
This function is deprecated, sign the summary file instead.
Add a GPG signature to a static delta.
-}
repoSignDelta ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Self -}
-> T.Text
{- ^ /@fromCommit@/: From commit -}
-> T.Text
{- ^ /@toCommit@/: To commit -}
-> T.Text
{- ^ /@keyId@/: key id -}
-> T.Text
{- ^ /@homedir@/: homedir -}
-> Maybe (b)
{- ^ /@cancellable@/: cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoSignDelta self fromCommit toCommit keyId homedir cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
fromCommit' <- textToCString fromCommit
toCommit' <- textToCString toCommit
keyId' <- textToCString keyId
homedir' <- textToCString homedir
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_sign_delta self' fromCommit' toCommit' keyId' homedir' maybeCancellable
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem fromCommit'
freeMem toCommit'
freeMem keyId'
freeMem homedir'
return ()
) (do
freeMem fromCommit'
freeMem toCommit'
freeMem keyId'
freeMem homedir'
)
#if ENABLE_OVERLOADING
data RepoSignDeltaMethodInfo
instance (signature ~ (T.Text -> T.Text -> T.Text -> T.Text -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoSignDeltaMethodInfo a signature where
overloadedMethod _ = repoSignDelta
#endif
-- method Repo::static_delta_execute_offline
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dir_or_file", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Path to a directory containing static delta data, or directly to the superblock", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "skip_validation", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "If %TRUE, assume data integrity", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_static_delta_execute_offline" ostree_repo_static_delta_execute_offline ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.File.File -> -- dir_or_file : TInterface (Name {namespace = "Gio", name = "File"})
CInt -> -- skip_validation : TBasicType TBoolean
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Given a directory representing an already-downloaded static delta
on disk, apply it, generating a new commit. The directory must be
named with the form \"FROM-TO\", where both are checksums, and it
must contain a file named \"superblock\", along with at least one part.
-}
repoStaticDeltaExecuteOffline ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.File.IsFile b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> b
{- ^ /@dirOrFile@/: Path to a directory containing static delta data, or directly to the superblock -}
-> Bool
{- ^ /@skipValidation@/: If 'True', assume data integrity -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoStaticDeltaExecuteOffline self dirOrFile skipValidation cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
dirOrFile' <- unsafeManagedPtrCastPtr dirOrFile
let skipValidation' = (fromIntegral . fromEnum) skipValidation
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_static_delta_execute_offline self' dirOrFile' skipValidation' maybeCancellable
touchManagedPtr self
touchManagedPtr dirOrFile
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoStaticDeltaExecuteOfflineMethodInfo
instance (signature ~ (b -> Bool -> Maybe (c) -> m ()), MonadIO m, IsRepo a, Gio.File.IsFile b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoStaticDeltaExecuteOfflineMethodInfo a signature where
overloadedMethod _ = repoStaticDeltaExecuteOffline
#endif
-- method Repo::static_delta_generate
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "opt", argType = TInterface (Name {namespace = "OSTree", name = "StaticDeltaGenerateOpt"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "High level optimization choice", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum of origin, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum of target", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "metadata", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional metadata", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Parameters, see below", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_static_delta_generate" ostree_repo_static_delta_generate ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- opt : TInterface (Name {namespace = "OSTree", name = "StaticDeltaGenerateOpt"})
CString -> -- from : TBasicType TUTF8
CString -> -- to : TBasicType TUTF8
Ptr GVariant -> -- metadata : TVariant
Ptr GVariant -> -- params : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Generate a lookaside \"static delta\" from /@from@/ ('Nothing' means
from-empty) which can generate the objects in /@to@/. This delta is
an optimization over fetching individual objects, and can be
conveniently stored and applied offline.
The /@params@/ argument should be an a{sv}. The following attributes
are known:
- min-fallback-size: u: Minimum uncompressed size in megabytes to use fallback, 0 to disable fallbacks
- max-chunk-size: u: Maximum size in megabytes of a delta part
- max-bsdiff-size: u: Maximum size in megabytes to consider bsdiff compression
for input files
- compression: y: Compression type: 0=none, x=lzma, g=gzip
- bsdiff-enabled: b: Enable bsdiff compression. Default TRUE.
- inline-parts: b: Put part data in header, to get a single file delta. Default FALSE.
- verbose: b: Print diagnostic messages. Default FALSE.
- endianness: b: Deltas use host byte order by default; this option allows choosing (G_BIG_ENDIAN or G_LITTLE_ENDIAN)
- filename: ay: Save delta superblock to this filename, and parts in the same directory. Default saves to repository.
-}
repoStaticDeltaGenerate ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.StaticDeltaGenerateOpt
{- ^ /@opt@/: High level optimization choice -}
-> T.Text
{- ^ /@from@/: ASCII SHA256 checksum of origin, or 'Nothing' -}
-> T.Text
{- ^ /@to@/: ASCII SHA256 checksum of target -}
-> Maybe (GVariant)
{- ^ /@metadata@/: Optional metadata -}
-> Maybe (GVariant)
{- ^ /@params@/: Parameters, see below -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoStaticDeltaGenerate self opt from to metadata params cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let opt' = (fromIntegral . fromEnum) opt
from' <- textToCString from
to' <- textToCString to
maybeMetadata <- case metadata of
Nothing -> return nullPtr
Just jMetadata -> do
jMetadata' <- unsafeManagedPtrGetPtr jMetadata
return jMetadata'
maybeParams <- case params of
Nothing -> return nullPtr
Just jParams -> do
jParams' <- unsafeManagedPtrGetPtr jParams
return jParams'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_static_delta_generate self' opt' from' to' maybeMetadata maybeParams maybeCancellable
touchManagedPtr self
whenJust metadata touchManagedPtr
whenJust params touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem from'
freeMem to'
return ()
) (do
freeMem from'
freeMem to'
)
#if ENABLE_OVERLOADING
data RepoStaticDeltaGenerateMethodInfo
instance (signature ~ (OSTree.Enums.StaticDeltaGenerateOpt -> T.Text -> T.Text -> Maybe (GVariant) -> Maybe (GVariant) -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoStaticDeltaGenerateMethodInfo a signature where
overloadedMethod _ = repoStaticDeltaGenerate
#endif
-- method Repo::transaction_set_collection_ref
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ref", argType = TInterface (Name {namespace = "OSTree", name = "CollectionRef"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The collection\8211ref to write", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The checksum to point it to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_transaction_set_collection_ref" ostree_repo_transaction_set_collection_ref ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr OSTree.CollectionRef.CollectionRef -> -- ref : TInterface (Name {namespace = "OSTree", name = "CollectionRef"})
CString -> -- checksum : TBasicType TUTF8
IO ()
{- |
If /@checksum@/ is not 'Nothing', then record it as the target of local ref named
/@ref@/.
Otherwise, if /@checksum@/ is 'Nothing', then record that the ref should
be deleted.
The change will not be written out immediately, but when the transaction
is completed with 'GI.OSTree.Objects.Repo.repoCommitTransaction'. If the transaction
is instead aborted with 'GI.OSTree.Objects.Repo.repoAbortTransaction', no changes will
be made to the repository.
Multithreading: Since v2017.15 this function is MT safe.
/Since: 2018.6/
-}
repoTransactionSetCollectionRef ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> OSTree.CollectionRef.CollectionRef
{- ^ /@ref@/: The collection–ref to write -}
-> Maybe (T.Text)
{- ^ /@checksum@/: The checksum to point it to -}
-> m ()
repoTransactionSetCollectionRef self ref checksum = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
ref' <- unsafeManagedPtrGetPtr ref
maybeChecksum <- case checksum of
Nothing -> return nullPtr
Just jChecksum -> do
jChecksum' <- textToCString jChecksum
return jChecksum'
ostree_repo_transaction_set_collection_ref self' ref' maybeChecksum
touchManagedPtr self
touchManagedPtr ref
freeMem maybeChecksum
return ()
#if ENABLE_OVERLOADING
data RepoTransactionSetCollectionRefMethodInfo
instance (signature ~ (OSTree.CollectionRef.CollectionRef -> Maybe (T.Text) -> m ()), MonadIO m, IsRepo a) => O.MethodInfo RepoTransactionSetCollectionRefMethodInfo a signature where
overloadedMethod _ = repoTransactionSetCollectionRef
#endif
-- method Repo::transaction_set_ref
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A remote for the ref", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ref", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The ref to write", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The checksum to point it to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_transaction_set_ref" ostree_repo_transaction_set_ref ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote : TBasicType TUTF8
CString -> -- ref : TBasicType TUTF8
CString -> -- checksum : TBasicType TUTF8
IO ()
{- |
If /@checksum@/ is not 'Nothing', then record it as the target of ref named
/@ref@/; if /@remote@/ is provided, the ref will appear to originate from that
remote.
Otherwise, if /@checksum@/ is 'Nothing', then record that the ref should
be deleted.
The change will be written when the transaction is completed with
'GI.OSTree.Objects.Repo.repoCommitTransaction'; that function takes care of writing all of
the objects (such as the commit referred to by /@checksum@/) before updating the
refs. If the transaction is instead aborted with
'GI.OSTree.Objects.Repo.repoAbortTransaction', no changes to the ref will be made to the
repository.
Note however that currently writing *multiple* refs is not truly atomic; if
the process or system is terminated during
'GI.OSTree.Objects.Repo.repoCommitTransaction', it is possible that just some of the refs
will have been updated. Your application should take care to handle this
case.
Multithreading: Since v2017.15 this function is MT safe.
-}
repoTransactionSetRef ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> Maybe (T.Text)
{- ^ /@remote@/: A remote for the ref -}
-> T.Text
{- ^ /@ref@/: The ref to write -}
-> Maybe (T.Text)
{- ^ /@checksum@/: The checksum to point it to -}
-> m ()
repoTransactionSetRef self remote ref checksum = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeRemote <- case remote of
Nothing -> return nullPtr
Just jRemote -> do
jRemote' <- textToCString jRemote
return jRemote'
ref' <- textToCString ref
maybeChecksum <- case checksum of
Nothing -> return nullPtr
Just jChecksum -> do
jChecksum' <- textToCString jChecksum
return jChecksum'
ostree_repo_transaction_set_ref self' maybeRemote ref' maybeChecksum
touchManagedPtr self
freeMem maybeRemote
freeMem ref'
freeMem maybeChecksum
return ()
#if ENABLE_OVERLOADING
data RepoTransactionSetRefMethodInfo
instance (signature ~ (Maybe (T.Text) -> T.Text -> Maybe (T.Text) -> m ()), MonadIO m, IsRepo a) => O.MethodInfo RepoTransactionSetRefMethodInfo a signature where
overloadedMethod _ = repoTransactionSetRef
#endif
-- method Repo::transaction_set_refspec
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refspec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The refspec to write", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The checksum to point it to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_transaction_set_refspec" ostree_repo_transaction_set_refspec ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- refspec : TBasicType TUTF8
CString -> -- checksum : TBasicType TUTF8
IO ()
{- |
Like 'GI.OSTree.Objects.Repo.repoTransactionSetRef', but takes concatenated
/@refspec@/ format as input instead of separate remote and name
arguments.
Multithreading: Since v2017.15 this function is MT safe.
-}
repoTransactionSetRefspec ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> T.Text
{- ^ /@refspec@/: The refspec to write -}
-> Maybe (T.Text)
{- ^ /@checksum@/: The checksum to point it to -}
-> m ()
repoTransactionSetRefspec self refspec checksum = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
refspec' <- textToCString refspec
maybeChecksum <- case checksum of
Nothing -> return nullPtr
Just jChecksum -> do
jChecksum' <- textToCString jChecksum
return jChecksum'
ostree_repo_transaction_set_refspec self' refspec' maybeChecksum
touchManagedPtr self
freeMem refspec'
freeMem maybeChecksum
return ()
#if ENABLE_OVERLOADING
data RepoTransactionSetRefspecMethodInfo
instance (signature ~ (T.Text -> Maybe (T.Text) -> m ()), MonadIO m, IsRepo a) => O.MethodInfo RepoTransactionSetRefspecMethodInfo a signature where
overloadedMethod _ = repoTransactionSetRefspec
#endif
-- XXX Could not generate method Repo::traverse_commit
-- Error was : Not implemented: "GHashTable element of type TVariant unsupported."
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoTraverseCommitMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "traverseCommit" Repo) => O.MethodInfo RepoTraverseCommitMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- XXX Could not generate method Repo::traverse_reachable_refs
-- Error was : Not implemented: "GHashTable key of type TVariant unsupported."
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoTraverseReachableRefsMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "traverseReachableRefs" Repo) => O.MethodInfo RepoTraverseReachableRefsMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- method Repo::verify_commit
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repository", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "commit_checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyringdir", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Path to directory GPG keyrings; overrides built-in default if given", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "extra_keyring", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Path to additional keyring file (not a directory)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_verify_commit" ostree_repo_verify_commit ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- commit_checksum : TBasicType TUTF8
Ptr Gio.File.File -> -- keyringdir : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.File.File -> -- extra_keyring : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Check for a valid GPG signature on commit named by the ASCII
checksum /@commitChecksum@/.
-}
repoVerifyCommit ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.File.IsFile b, Gio.File.IsFile c, Gio.Cancellable.IsCancellable d) =>
a
{- ^ /@self@/: Repository -}
-> T.Text
{- ^ /@commitChecksum@/: ASCII SHA256 checksum -}
-> Maybe (b)
{- ^ /@keyringdir@/: Path to directory GPG keyrings; overrides built-in default if given -}
-> Maybe (c)
{- ^ /@extraKeyring@/: Path to additional keyring file (not a directory) -}
-> Maybe (d)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoVerifyCommit self commitChecksum keyringdir extraKeyring cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
commitChecksum' <- textToCString commitChecksum
maybeKeyringdir <- case keyringdir of
Nothing -> return nullPtr
Just jKeyringdir -> do
jKeyringdir' <- unsafeManagedPtrCastPtr jKeyringdir
return jKeyringdir'
maybeExtraKeyring <- case extraKeyring of
Nothing -> return nullPtr
Just jExtraKeyring -> do
jExtraKeyring' <- unsafeManagedPtrCastPtr jExtraKeyring
return jExtraKeyring'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_verify_commit self' commitChecksum' maybeKeyringdir maybeExtraKeyring maybeCancellable
touchManagedPtr self
whenJust keyringdir touchManagedPtr
whenJust extraKeyring touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem commitChecksum'
return ()
) (do
freeMem commitChecksum'
)
#if ENABLE_OVERLOADING
data RepoVerifyCommitMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> Maybe (c) -> Maybe (d) -> m ()), MonadIO m, IsRepo a, Gio.File.IsFile b, Gio.File.IsFile c, Gio.Cancellable.IsCancellable d) => O.MethodInfo RepoVerifyCommitMethodInfo a signature where
overloadedMethod _ = repoVerifyCommit
#endif
-- method Repo::verify_commit_ext
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repository", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "commit_checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyringdir", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Path to directory GPG keyrings; overrides built-in default if given", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "extra_keyring", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Path to additional keyring file (not a directory)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "GpgVerifyResult"}))
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_verify_commit_ext" ostree_repo_verify_commit_ext ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- commit_checksum : TBasicType TUTF8
Ptr Gio.File.File -> -- keyringdir : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.File.File -> -- extra_keyring : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO (Ptr OSTree.GpgVerifyResult.GpgVerifyResult)
{- |
Read GPG signature(s) on the commit named by the ASCII checksum
/@commitChecksum@/ and return detailed results.
-}
repoVerifyCommitExt ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.File.IsFile b, Gio.File.IsFile c, Gio.Cancellable.IsCancellable d) =>
a
{- ^ /@self@/: Repository -}
-> T.Text
{- ^ /@commitChecksum@/: ASCII SHA256 checksum -}
-> Maybe (b)
{- ^ /@keyringdir@/: Path to directory GPG keyrings; overrides built-in default if given -}
-> Maybe (c)
{- ^ /@extraKeyring@/: Path to additional keyring file (not a directory) -}
-> Maybe (d)
{- ^ /@cancellable@/: Cancellable -}
-> m OSTree.GpgVerifyResult.GpgVerifyResult
{- ^ __Returns:__ an 'GI.OSTree.Objects.GpgVerifyResult.GpgVerifyResult', or 'Nothing' on error /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoVerifyCommitExt self commitChecksum keyringdir extraKeyring cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
commitChecksum' <- textToCString commitChecksum
maybeKeyringdir <- case keyringdir of
Nothing -> return nullPtr
Just jKeyringdir -> do
jKeyringdir' <- unsafeManagedPtrCastPtr jKeyringdir
return jKeyringdir'
maybeExtraKeyring <- case extraKeyring of
Nothing -> return nullPtr
Just jExtraKeyring -> do
jExtraKeyring' <- unsafeManagedPtrCastPtr jExtraKeyring
return jExtraKeyring'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ ostree_repo_verify_commit_ext self' commitChecksum' maybeKeyringdir maybeExtraKeyring maybeCancellable
checkUnexpectedReturnNULL "repoVerifyCommitExt" result
result' <- (wrapObject OSTree.GpgVerifyResult.GpgVerifyResult) result
touchManagedPtr self
whenJust keyringdir touchManagedPtr
whenJust extraKeyring touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem commitChecksum'
return result'
) (do
freeMem commitChecksum'
)
#if ENABLE_OVERLOADING
data RepoVerifyCommitExtMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> Maybe (c) -> Maybe (d) -> m OSTree.GpgVerifyResult.GpgVerifyResult), MonadIO m, IsRepo a, Gio.File.IsFile b, Gio.File.IsFile c, Gio.Cancellable.IsCancellable d) => O.MethodInfo RepoVerifyCommitExtMethodInfo a signature where
overloadedMethod _ = repoVerifyCommitExt
#endif
-- method Repo::verify_commit_for_remote
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repository", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "commit_checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "OSTree remote to use for configuration", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "GpgVerifyResult"}))
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_verify_commit_for_remote" ostree_repo_verify_commit_for_remote ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- commit_checksum : TBasicType TUTF8
CString -> -- remote_name : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO (Ptr OSTree.GpgVerifyResult.GpgVerifyResult)
{- |
Read GPG signature(s) on the commit named by the ASCII checksum
/@commitChecksum@/ and return detailed results, based on the keyring
configured for /@remote@/.
-}
repoVerifyCommitForRemote ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repository -}
-> T.Text
{- ^ /@commitChecksum@/: ASCII SHA256 checksum -}
-> T.Text
{- ^ /@remoteName@/: OSTree remote to use for configuration -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m OSTree.GpgVerifyResult.GpgVerifyResult
{- ^ __Returns:__ an 'GI.OSTree.Objects.GpgVerifyResult.GpgVerifyResult', or 'Nothing' on error /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoVerifyCommitForRemote self commitChecksum remoteName cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
commitChecksum' <- textToCString commitChecksum
remoteName' <- textToCString remoteName
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ ostree_repo_verify_commit_for_remote self' commitChecksum' remoteName' maybeCancellable
checkUnexpectedReturnNULL "repoVerifyCommitForRemote" result
result' <- (wrapObject OSTree.GpgVerifyResult.GpgVerifyResult) result
touchManagedPtr self
whenJust cancellable touchManagedPtr
freeMem commitChecksum'
freeMem remoteName'
return result'
) (do
freeMem commitChecksum'
freeMem remoteName'
)
#if ENABLE_OVERLOADING
data RepoVerifyCommitForRemoteMethodInfo
instance (signature ~ (T.Text -> T.Text -> Maybe (b) -> m OSTree.GpgVerifyResult.GpgVerifyResult), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoVerifyCommitForRemoteMethodInfo a signature where
overloadedMethod _ = repoVerifyCommitForRemote
#endif
-- method Repo::verify_summary
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "remote_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Name of remote", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "summary", argType = TInterface (Name {namespace = "GLib", name = "Bytes"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Summary data as a #GBytes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signatures", argType = TInterface (Name {namespace = "GLib", name = "Bytes"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Summary signatures as a #GBytes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "GpgVerifyResult"}))
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_verify_summary" ostree_repo_verify_summary ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- remote_name : TBasicType TUTF8
Ptr GLib.Bytes.Bytes -> -- summary : TInterface (Name {namespace = "GLib", name = "Bytes"})
Ptr GLib.Bytes.Bytes -> -- signatures : TInterface (Name {namespace = "GLib", name = "Bytes"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO (Ptr OSTree.GpgVerifyResult.GpgVerifyResult)
{- |
Verify /@signatures@/ for /@summary@/ data using GPG keys in the keyring for
/@remoteName@/, and return an 'GI.OSTree.Objects.GpgVerifyResult.GpgVerifyResult'.
-}
repoVerifySummary ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@remoteName@/: Name of remote -}
-> GLib.Bytes.Bytes
{- ^ /@summary@/: Summary data as a 'GI.GLib.Structs.Bytes.Bytes' -}
-> GLib.Bytes.Bytes
{- ^ /@signatures@/: Summary signatures as a 'GI.GLib.Structs.Bytes.Bytes' -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m OSTree.GpgVerifyResult.GpgVerifyResult
{- ^ __Returns:__ an 'GI.OSTree.Objects.GpgVerifyResult.GpgVerifyResult', or 'Nothing' on error /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoVerifySummary self remoteName summary signatures cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
remoteName' <- textToCString remoteName
summary' <- unsafeManagedPtrGetPtr summary
signatures' <- unsafeManagedPtrGetPtr signatures
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ ostree_repo_verify_summary self' remoteName' summary' signatures' maybeCancellable
checkUnexpectedReturnNULL "repoVerifySummary" result
result' <- (wrapObject OSTree.GpgVerifyResult.GpgVerifyResult) result
touchManagedPtr self
touchManagedPtr summary
touchManagedPtr signatures
whenJust cancellable touchManagedPtr
freeMem remoteName'
return result'
) (do
freeMem remoteName'
)
#if ENABLE_OVERLOADING
data RepoVerifySummaryMethodInfo
instance (signature ~ (T.Text -> GLib.Bytes.Bytes -> GLib.Bytes.Bytes -> Maybe (b) -> m OSTree.GpgVerifyResult.GpgVerifyResult), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoVerifySummaryMethodInfo a signature where
overloadedMethod _ = repoVerifySummary
#endif
-- method Repo::write_archive_to_mtree
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "archive", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A path to an archive file", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mtree", argType = TInterface (Name {namespace = "OSTree", name = "MutableTree"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #OstreeMutableTree to write to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modifier", argType = TInterface (Name {namespace = "OSTree", name = "RepoCommitModifier"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional commit modifier", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "autocreate_parents", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Autocreate parent directories", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_archive_to_mtree" ostree_repo_write_archive_to_mtree ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.File.File -> -- archive : TInterface (Name {namespace = "Gio", name = "File"})
Ptr OSTree.MutableTree.MutableTree -> -- mtree : TInterface (Name {namespace = "OSTree", name = "MutableTree"})
Ptr OSTree.RepoCommitModifier.RepoCommitModifier -> -- modifier : TInterface (Name {namespace = "OSTree", name = "RepoCommitModifier"})
CInt -> -- autocreate_parents : TBasicType TBoolean
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Import an archive file /@archive@/ into the repository, and write its
file structure to /@mtree@/.
-}
repoWriteArchiveToMtree ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.File.IsFile b, OSTree.MutableTree.IsMutableTree c, Gio.Cancellable.IsCancellable d) =>
a
{- ^ /@self@/: An 'GI.OSTree.Objects.Repo.Repo' -}
-> b
{- ^ /@archive@/: A path to an archive file -}
-> c
{- ^ /@mtree@/: The 'GI.OSTree.Objects.MutableTree.MutableTree' to write to -}
-> Maybe (OSTree.RepoCommitModifier.RepoCommitModifier)
{- ^ /@modifier@/: Optional commit modifier -}
-> Bool
{- ^ /@autocreateParents@/: Autocreate parent directories -}
-> Maybe (d)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteArchiveToMtree self archive mtree modifier autocreateParents cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
archive' <- unsafeManagedPtrCastPtr archive
mtree' <- unsafeManagedPtrCastPtr mtree
maybeModifier <- case modifier of
Nothing -> return nullPtr
Just jModifier -> do
jModifier' <- unsafeManagedPtrGetPtr jModifier
return jModifier'
let autocreateParents' = (fromIntegral . fromEnum) autocreateParents
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_archive_to_mtree self' archive' mtree' maybeModifier autocreateParents' maybeCancellable
touchManagedPtr self
touchManagedPtr archive
touchManagedPtr mtree
whenJust modifier touchManagedPtr
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoWriteArchiveToMtreeMethodInfo
instance (signature ~ (b -> c -> Maybe (OSTree.RepoCommitModifier.RepoCommitModifier) -> Bool -> Maybe (d) -> m ()), MonadIO m, IsRepo a, Gio.File.IsFile b, OSTree.MutableTree.IsMutableTree c, Gio.Cancellable.IsCancellable d) => O.MethodInfo RepoWriteArchiveToMtreeMethodInfo a signature where
overloadedMethod _ = repoWriteArchiveToMtree
#endif
-- method Repo::write_commit
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum for parent, or %NULL for none", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "subject", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Subject", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "body", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Body", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "metadata", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GVariant of type a{sv}, or %NULL for none", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root", argType = TInterface (Name {namespace = "OSTree", name = "RepoFile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The tree to point the commit to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_commit", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Resulting ASCII SHA256 checksum for commit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_commit" ostree_repo_write_commit ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- parent : TBasicType TUTF8
CString -> -- subject : TBasicType TUTF8
CString -> -- body : TBasicType TUTF8
Ptr GVariant -> -- metadata : TVariant
Ptr OSTree.RepoFile.RepoFile -> -- root : TInterface (Name {namespace = "OSTree", name = "RepoFile"})
Ptr CString -> -- out_commit : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Write a commit metadata object, referencing /@rootContentsChecksum@/
and /@rootMetadataChecksum@/.
-}
repoWriteCommit ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, OSTree.RepoFile.IsRepoFile b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> Maybe (T.Text)
{- ^ /@parent@/: ASCII SHA256 checksum for parent, or 'Nothing' for none -}
-> Maybe (T.Text)
{- ^ /@subject@/: Subject -}
-> Maybe (T.Text)
{- ^ /@body@/: Body -}
-> Maybe (GVariant)
{- ^ /@metadata@/: GVariant of type a{sv}, or 'Nothing' for none -}
-> b
{- ^ /@root@/: The tree to point the commit to -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m (T.Text)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteCommit self parent subject body metadata root cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeParent <- case parent of
Nothing -> return nullPtr
Just jParent -> do
jParent' <- textToCString jParent
return jParent'
maybeSubject <- case subject of
Nothing -> return nullPtr
Just jSubject -> do
jSubject' <- textToCString jSubject
return jSubject'
maybeBody <- case body of
Nothing -> return nullPtr
Just jBody -> do
jBody' <- textToCString jBody
return jBody'
maybeMetadata <- case metadata of
Nothing -> return nullPtr
Just jMetadata -> do
jMetadata' <- unsafeManagedPtrGetPtr jMetadata
return jMetadata'
root' <- unsafeManagedPtrCastPtr root
outCommit <- allocMem :: IO (Ptr CString)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_commit self' maybeParent maybeSubject maybeBody maybeMetadata root' outCommit maybeCancellable
outCommit' <- peek outCommit
outCommit'' <- cstringToText outCommit'
freeMem outCommit'
touchManagedPtr self
whenJust metadata touchManagedPtr
touchManagedPtr root
whenJust cancellable touchManagedPtr
freeMem maybeParent
freeMem maybeSubject
freeMem maybeBody
freeMem outCommit
return outCommit''
) (do
freeMem maybeParent
freeMem maybeSubject
freeMem maybeBody
freeMem outCommit
)
#if ENABLE_OVERLOADING
data RepoWriteCommitMethodInfo
instance (signature ~ (Maybe (T.Text) -> Maybe (T.Text) -> Maybe (T.Text) -> Maybe (GVariant) -> b -> Maybe (c) -> m (T.Text)), MonadIO m, IsRepo a, OSTree.RepoFile.IsRepoFile b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoWriteCommitMethodInfo a signature where
overloadedMethod _ = repoWriteCommit
#endif
-- method Repo::write_commit_detached_metadata
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "ASCII SHA256 commit checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "metadata", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Metadata to associate with commit in with format \"a{sv}\", or %NULL to delete", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_commit_detached_metadata" ostree_repo_write_commit_detached_metadata ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- checksum : TBasicType TUTF8
Ptr GVariant -> -- metadata : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Replace any existing metadata associated with commit referred to by
/@checksum@/ with /@metadata@/. If /@metadata@/ is 'Nothing', then existing
data will be deleted.
-}
repoWriteCommitDetachedMetadata ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@checksum@/: ASCII SHA256 commit checksum -}
-> Maybe (GVariant)
{- ^ /@metadata@/: Metadata to associate with commit in with format \"a{sv}\", or 'Nothing' to delete -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteCommitDetachedMetadata self checksum metadata cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
checksum' <- textToCString checksum
maybeMetadata <- case metadata of
Nothing -> return nullPtr
Just jMetadata -> do
jMetadata' <- unsafeManagedPtrGetPtr jMetadata
return jMetadata'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_commit_detached_metadata self' checksum' maybeMetadata maybeCancellable
touchManagedPtr self
whenJust metadata touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem checksum'
return ()
) (do
freeMem checksum'
)
#if ENABLE_OVERLOADING
data RepoWriteCommitDetachedMetadataMethodInfo
instance (signature ~ (T.Text -> Maybe (GVariant) -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoWriteCommitDetachedMetadataMethodInfo a signature where
overloadedMethod _ = repoWriteCommitDetachedMetadata
#endif
-- method Repo::write_commit_with_time
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "ASCII SHA256 checksum for parent, or %NULL for none", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "subject", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Subject", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "body", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Body", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "metadata", argType = TVariant, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "GVariant of type a{sv}, or %NULL for none", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root", argType = TInterface (Name {namespace = "OSTree", name = "RepoFile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The tree to point the commit to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The time to use to stamp the commit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_commit", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Resulting ASCII SHA256 checksum for commit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_commit_with_time" ostree_repo_write_commit_with_time ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- parent : TBasicType TUTF8
CString -> -- subject : TBasicType TUTF8
CString -> -- body : TBasicType TUTF8
Ptr GVariant -> -- metadata : TVariant
Ptr OSTree.RepoFile.RepoFile -> -- root : TInterface (Name {namespace = "OSTree", name = "RepoFile"})
Word64 -> -- time : TBasicType TUInt64
Ptr CString -> -- out_commit : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Write a commit metadata object, referencing /@rootContentsChecksum@/
and /@rootMetadataChecksum@/.
-}
repoWriteCommitWithTime ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, OSTree.RepoFile.IsRepoFile b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> Maybe (T.Text)
{- ^ /@parent@/: ASCII SHA256 checksum for parent, or 'Nothing' for none -}
-> Maybe (T.Text)
{- ^ /@subject@/: Subject -}
-> Maybe (T.Text)
{- ^ /@body@/: Body -}
-> Maybe (GVariant)
{- ^ /@metadata@/: GVariant of type a{sv}, or 'Nothing' for none -}
-> b
{- ^ /@root@/: The tree to point the commit to -}
-> Word64
{- ^ /@time@/: The time to use to stamp the commit -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m (T.Text)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteCommitWithTime self parent subject body metadata root time cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeParent <- case parent of
Nothing -> return nullPtr
Just jParent -> do
jParent' <- textToCString jParent
return jParent'
maybeSubject <- case subject of
Nothing -> return nullPtr
Just jSubject -> do
jSubject' <- textToCString jSubject
return jSubject'
maybeBody <- case body of
Nothing -> return nullPtr
Just jBody -> do
jBody' <- textToCString jBody
return jBody'
maybeMetadata <- case metadata of
Nothing -> return nullPtr
Just jMetadata -> do
jMetadata' <- unsafeManagedPtrGetPtr jMetadata
return jMetadata'
root' <- unsafeManagedPtrCastPtr root
outCommit <- allocMem :: IO (Ptr CString)
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_commit_with_time self' maybeParent maybeSubject maybeBody maybeMetadata root' time outCommit maybeCancellable
outCommit' <- peek outCommit
outCommit'' <- cstringToText outCommit'
freeMem outCommit'
touchManagedPtr self
whenJust metadata touchManagedPtr
touchManagedPtr root
whenJust cancellable touchManagedPtr
freeMem maybeParent
freeMem maybeSubject
freeMem maybeBody
freeMem outCommit
return outCommit''
) (do
freeMem maybeParent
freeMem maybeSubject
freeMem maybeBody
freeMem outCommit
)
#if ENABLE_OVERLOADING
data RepoWriteCommitWithTimeMethodInfo
instance (signature ~ (Maybe (T.Text) -> Maybe (T.Text) -> Maybe (T.Text) -> Maybe (GVariant) -> b -> Word64 -> Maybe (c) -> m (T.Text)), MonadIO m, IsRepo a, OSTree.RepoFile.IsRepoFile b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoWriteCommitWithTimeMethodInfo a signature where
overloadedMethod _ = repoWriteCommitWithTime
#endif
-- method Repo::write_config
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_config", argType = TInterface (Name {namespace = "GLib", name = "KeyFile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Overwrite the config file with this data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_config" ostree_repo_write_config ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr GLib.KeyFile.KeyFile -> -- new_config : TInterface (Name {namespace = "GLib", name = "KeyFile"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Save /@newConfig@/ in place of this repository\'s config file.
-}
repoWriteConfig ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a) =>
a
{- ^ /@self@/: Repo -}
-> GLib.KeyFile.KeyFile
{- ^ /@newConfig@/: Overwrite the config file with this data -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteConfig self newConfig = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
newConfig' <- unsafeManagedPtrGetPtr newConfig
onException (do
_ <- propagateGError $ ostree_repo_write_config self' newConfig'
touchManagedPtr self
touchManagedPtr newConfig
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoWriteConfigMethodInfo
instance (signature ~ (GLib.KeyFile.KeyFile -> m ()), MonadIO m, IsRepo a) => O.MethodInfo RepoWriteConfigMethodInfo a signature where
overloadedMethod _ = repoWriteConfig
#endif
-- method Repo::write_content
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expected_checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "If provided, validate content against this checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Content object stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Length of @object_input", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_csum", argType = TCArray False 32 (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Binary checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_content" ostree_repo_write_content ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- expected_checksum : TBasicType TUTF8
Ptr Gio.InputStream.InputStream -> -- object_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Word64 -> -- length : TBasicType TUInt64
Ptr (Ptr Word8) -> -- out_csum : TCArray False 32 (-1) (TBasicType TUInt8)
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Store the content object streamed as /@objectInput@/,
with total length /@length@/. The actual checksum will
be returned as /@outCsum@/.
-}
repoWriteContent ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> Maybe (T.Text)
{- ^ /@expectedChecksum@/: If provided, validate content against this checksum -}
-> b
{- ^ /@objectInput@/: Content object stream -}
-> Word64
{- ^ /@length@/: Length of /@objectInput@/ -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m (ByteString)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteContent self expectedChecksum objectInput length_ cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeExpectedChecksum <- case expectedChecksum of
Nothing -> return nullPtr
Just jExpectedChecksum -> do
jExpectedChecksum' <- textToCString jExpectedChecksum
return jExpectedChecksum'
objectInput' <- unsafeManagedPtrCastPtr objectInput
outCsum <- allocMem :: IO (Ptr (Ptr Word8))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_content self' maybeExpectedChecksum objectInput' length_ outCsum maybeCancellable
outCsum' <- peek outCsum
outCsum'' <- (unpackByteStringWithLength 32) outCsum'
freeMem outCsum'
touchManagedPtr self
touchManagedPtr objectInput
whenJust cancellable touchManagedPtr
freeMem maybeExpectedChecksum
freeMem outCsum
return outCsum''
) (do
freeMem maybeExpectedChecksum
freeMem outCsum
)
#if ENABLE_OVERLOADING
data RepoWriteContentMethodInfo
instance (signature ~ (Maybe (T.Text) -> b -> Word64 -> Maybe (c) -> m (ByteString)), MonadIO m, IsRepo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoWriteContentMethodInfo a signature where
overloadedMethod _ = repoWriteContent
#endif
-- method Repo::write_content_async
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expected_checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "If provided, validate content against this checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Input", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Length of @object", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Invoked when content is writed", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 6, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "User data for @callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_write_content_async" ostree_repo_write_content_async ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- expected_checksum : TBasicType TUTF8
Ptr Gio.InputStream.InputStream -> -- object : TInterface (Name {namespace = "Gio", name = "InputStream"})
Word64 -> -- length : TBasicType TUInt64
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
FunPtr Gio.Callbacks.C_AsyncReadyCallback -> -- callback : TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"})
Ptr () -> -- user_data : TBasicType TPtr
IO ()
{- |
Asynchronously store the content object /@object@/. If provided, the
checksum /@expectedChecksum@/ will be verified.
-}
repoWriteContentAsync ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> Maybe (T.Text)
{- ^ /@expectedChecksum@/: If provided, validate content against this checksum -}
-> b
{- ^ /@object@/: Input -}
-> Word64
{- ^ /@length@/: Length of /@object@/ -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> Maybe (Gio.Callbacks.AsyncReadyCallback)
{- ^ /@callback@/: Invoked when content is writed -}
-> m ()
repoWriteContentAsync self expectedChecksum object length_ cancellable callback = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
maybeExpectedChecksum <- case expectedChecksum of
Nothing -> return nullPtr
Just jExpectedChecksum -> do
jExpectedChecksum' <- textToCString jExpectedChecksum
return jExpectedChecksum'
object' <- unsafeManagedPtrCastPtr object
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
maybeCallback <- case callback of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jCallback -> do
ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback))
jCallback' <- Gio.Callbacks.mk_AsyncReadyCallback (Gio.Callbacks.wrap_AsyncReadyCallback (Just ptrcallback) (Gio.Callbacks.drop_closures_AsyncReadyCallback jCallback))
poke ptrcallback jCallback'
return jCallback'
let userData = nullPtr
ostree_repo_write_content_async self' maybeExpectedChecksum object' length_ maybeCancellable maybeCallback userData
touchManagedPtr self
touchManagedPtr object
whenJust cancellable touchManagedPtr
freeMem maybeExpectedChecksum
return ()
#if ENABLE_OVERLOADING
data RepoWriteContentAsyncMethodInfo
instance (signature ~ (Maybe (T.Text) -> b -> Word64 -> Maybe (c) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsRepo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoWriteContentAsyncMethodInfo a signature where
overloadedMethod _ = repoWriteContentAsync
#endif
-- method Repo::write_content_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #OstreeRepo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gio", name = "AsyncResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GAsyncResult", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_csum", argType = TBasicType TUInt8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A binary SHA256 checksum of the content object", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_content_finish" ostree_repo_write_content_finish ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.AsyncResult.AsyncResult -> -- result : TInterface (Name {namespace = "Gio", name = "AsyncResult"})
Ptr Word8 -> -- out_csum : TBasicType TUInt8
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Completes an invocation of 'GI.OSTree.Objects.Repo.repoWriteContentAsync'.
-}
repoWriteContentFinish ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.AsyncResult.IsAsyncResult b) =>
a
{- ^ /@self@/: a 'GI.OSTree.Objects.Repo.Repo' -}
-> b
{- ^ /@result@/: a 'GI.Gio.Interfaces.AsyncResult.AsyncResult' -}
-> m (Word8)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteContentFinish self result_ = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result_' <- unsafeManagedPtrCastPtr result_
outCsum <- allocMem :: IO (Ptr Word8)
onException (do
_ <- propagateGError $ ostree_repo_write_content_finish self' result_' outCsum
outCsum' <- peek outCsum
touchManagedPtr self
touchManagedPtr result_
freeMem outCsum
return outCsum'
) (do
freeMem outCsum
)
#if ENABLE_OVERLOADING
data RepoWriteContentFinishMethodInfo
instance (signature ~ (b -> m (Word8)), MonadIO m, IsRepo a, Gio.AsyncResult.IsAsyncResult b) => O.MethodInfo RepoWriteContentFinishMethodInfo a signature where
overloadedMethod _ = repoWriteContentFinish
#endif
-- method Repo::write_content_trusted
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Store content using this ASCII SHA256 checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Content stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Length of @object_input", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_content_trusted" ostree_repo_write_content_trusted ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CString -> -- checksum : TBasicType TUTF8
Ptr Gio.InputStream.InputStream -> -- object_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Word64 -> -- length : TBasicType TUInt64
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Store the content object streamed as /@objectInput@/, with total
length /@length@/. The given /@checksum@/ will be treated as trusted.
This function should be used when importing file objects from local
disk, for example.
-}
repoWriteContentTrusted ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> T.Text
{- ^ /@checksum@/: Store content using this ASCII SHA256 checksum -}
-> b
{- ^ /@objectInput@/: Content stream -}
-> Word64
{- ^ /@length@/: Length of /@objectInput@/ -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteContentTrusted self checksum objectInput length_ cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
checksum' <- textToCString checksum
objectInput' <- unsafeManagedPtrCastPtr objectInput
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_content_trusted self' checksum' objectInput' length_ maybeCancellable
touchManagedPtr self
touchManagedPtr objectInput
whenJust cancellable touchManagedPtr
freeMem checksum'
return ()
) (do
freeMem checksum'
)
#if ENABLE_OVERLOADING
data RepoWriteContentTrustedMethodInfo
instance (signature ~ (T.Text -> b -> Word64 -> Maybe (c) -> m ()), MonadIO m, IsRepo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoWriteContentTrustedMethodInfo a signature where
overloadedMethod _ = repoWriteContentTrusted
#endif
-- method Repo::write_dfd_to_mtree
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dfd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Directory file descriptor", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mtree", argType = TInterface (Name {namespace = "OSTree", name = "MutableTree"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Overlay directory contents into this tree", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modifier", argType = TInterface (Name {namespace = "OSTree", name = "RepoCommitModifier"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional modifier", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_dfd_to_mtree" ostree_repo_write_dfd_to_mtree ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Int32 -> -- dfd : TBasicType TInt
CString -> -- path : TBasicType TUTF8
Ptr OSTree.MutableTree.MutableTree -> -- mtree : TInterface (Name {namespace = "OSTree", name = "MutableTree"})
Ptr OSTree.RepoCommitModifier.RepoCommitModifier -> -- modifier : TInterface (Name {namespace = "OSTree", name = "RepoCommitModifier"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Store as objects all contents of the directory referred to by /@dfd@/
and /@path@/ all children into the repository /@self@/, overlaying the
resulting filesystem hierarchy into /@mtree@/.
-}
repoWriteDfdToMtree ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, OSTree.MutableTree.IsMutableTree b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> Int32
{- ^ /@dfd@/: Directory file descriptor -}
-> T.Text
{- ^ /@path@/: Path -}
-> b
{- ^ /@mtree@/: Overlay directory contents into this tree -}
-> Maybe (OSTree.RepoCommitModifier.RepoCommitModifier)
{- ^ /@modifier@/: Optional modifier -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteDfdToMtree self dfd path mtree modifier cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
path' <- textToCString path
mtree' <- unsafeManagedPtrCastPtr mtree
maybeModifier <- case modifier of
Nothing -> return nullPtr
Just jModifier -> do
jModifier' <- unsafeManagedPtrGetPtr jModifier
return jModifier'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_dfd_to_mtree self' dfd path' mtree' maybeModifier maybeCancellable
touchManagedPtr self
touchManagedPtr mtree
whenJust modifier touchManagedPtr
whenJust cancellable touchManagedPtr
freeMem path'
return ()
) (do
freeMem path'
)
#if ENABLE_OVERLOADING
data RepoWriteDfdToMtreeMethodInfo
instance (signature ~ (Int32 -> T.Text -> b -> Maybe (OSTree.RepoCommitModifier.RepoCommitModifier) -> Maybe (c) -> m ()), MonadIO m, IsRepo a, OSTree.MutableTree.IsMutableTree b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoWriteDfdToMtreeMethodInfo a signature where
overloadedMethod _ = repoWriteDfdToMtree
#endif
-- method Repo::write_directory_to_mtree
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dir", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Path to a directory", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mtree", argType = TInterface (Name {namespace = "OSTree", name = "MutableTree"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Overlay directory contents into this tree", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modifier", argType = TInterface (Name {namespace = "OSTree", name = "RepoCommitModifier"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Optional modifier", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_directory_to_mtree" ostree_repo_write_directory_to_mtree ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.File.File -> -- dir : TInterface (Name {namespace = "Gio", name = "File"})
Ptr OSTree.MutableTree.MutableTree -> -- mtree : TInterface (Name {namespace = "OSTree", name = "MutableTree"})
Ptr OSTree.RepoCommitModifier.RepoCommitModifier -> -- modifier : TInterface (Name {namespace = "OSTree", name = "RepoCommitModifier"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Store objects for /@dir@/ and all children into the repository /@self@/,
overlaying the resulting filesystem hierarchy into /@mtree@/.
-}
repoWriteDirectoryToMtree ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.File.IsFile b, OSTree.MutableTree.IsMutableTree c, Gio.Cancellable.IsCancellable d) =>
a
{- ^ /@self@/: Repo -}
-> b
{- ^ /@dir@/: Path to a directory -}
-> c
{- ^ /@mtree@/: Overlay directory contents into this tree -}
-> Maybe (OSTree.RepoCommitModifier.RepoCommitModifier)
{- ^ /@modifier@/: Optional modifier -}
-> Maybe (d)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteDirectoryToMtree self dir mtree modifier cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
dir' <- unsafeManagedPtrCastPtr dir
mtree' <- unsafeManagedPtrCastPtr mtree
maybeModifier <- case modifier of
Nothing -> return nullPtr
Just jModifier -> do
jModifier' <- unsafeManagedPtrGetPtr jModifier
return jModifier'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_directory_to_mtree self' dir' mtree' maybeModifier maybeCancellable
touchManagedPtr self
touchManagedPtr dir
touchManagedPtr mtree
whenJust modifier touchManagedPtr
whenJust cancellable touchManagedPtr
return ()
) (do
return ()
)
#if ENABLE_OVERLOADING
data RepoWriteDirectoryToMtreeMethodInfo
instance (signature ~ (b -> c -> Maybe (OSTree.RepoCommitModifier.RepoCommitModifier) -> Maybe (d) -> m ()), MonadIO m, IsRepo a, Gio.File.IsFile b, OSTree.MutableTree.IsMutableTree c, Gio.Cancellable.IsCancellable d) => O.MethodInfo RepoWriteDirectoryToMtreeMethodInfo a signature where
overloadedMethod _ = repoWriteDirectoryToMtree
#endif
-- method Repo::write_metadata
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expected_checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "If provided, validate content against this checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Metadata", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_csum", argType = TCArray False 32 (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Binary checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_metadata" ostree_repo_write_metadata ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- expected_checksum : TBasicType TUTF8
Ptr GVariant -> -- object : TVariant
Ptr (Ptr Word8) -> -- out_csum : TCArray False 32 (-1) (TBasicType TUInt8)
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Store the metadata object /@object@/. Return the checksum
as /@outCsum@/.
If /@expectedChecksum@/ is not 'Nothing', verify it against the
computed checksum.
-}
repoWriteMetadata ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> Maybe (T.Text)
{- ^ /@expectedChecksum@/: If provided, validate content against this checksum -}
-> GVariant
{- ^ /@object@/: Metadata -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m (ByteString)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteMetadata self objtype expectedChecksum object cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
maybeExpectedChecksum <- case expectedChecksum of
Nothing -> return nullPtr
Just jExpectedChecksum -> do
jExpectedChecksum' <- textToCString jExpectedChecksum
return jExpectedChecksum'
object' <- unsafeManagedPtrGetPtr object
outCsum <- allocMem :: IO (Ptr (Ptr Word8))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_metadata self' objtype' maybeExpectedChecksum object' outCsum maybeCancellable
outCsum' <- peek outCsum
outCsum'' <- (unpackByteStringWithLength 32) outCsum'
freeMem outCsum'
touchManagedPtr self
touchManagedPtr object
whenJust cancellable touchManagedPtr
freeMem maybeExpectedChecksum
freeMem outCsum
return outCsum''
) (do
freeMem maybeExpectedChecksum
freeMem outCsum
)
#if ENABLE_OVERLOADING
data RepoWriteMetadataMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> Maybe (T.Text) -> GVariant -> Maybe (b) -> m (ByteString)), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoWriteMetadataMethodInfo a signature where
overloadedMethod _ = repoWriteMetadata
#endif
-- method Repo::write_metadata_async
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expected_checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "If provided, validate content against this checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Metadata", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Invoked when metadata is writed", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 6, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Data for @callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_write_metadata_async" ostree_repo_write_metadata_async ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- expected_checksum : TBasicType TUTF8
Ptr GVariant -> -- object : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
FunPtr Gio.Callbacks.C_AsyncReadyCallback -> -- callback : TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"})
Ptr () -> -- user_data : TBasicType TPtr
IO ()
{- |
Asynchronously store the metadata object /@variant@/. If provided,
the checksum /@expectedChecksum@/ will be verified.
-}
repoWriteMetadataAsync ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> Maybe (T.Text)
{- ^ /@expectedChecksum@/: If provided, validate content against this checksum -}
-> GVariant
{- ^ /@object@/: Metadata -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> Maybe (Gio.Callbacks.AsyncReadyCallback)
{- ^ /@callback@/: Invoked when metadata is writed -}
-> m ()
repoWriteMetadataAsync self objtype expectedChecksum object cancellable callback = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
maybeExpectedChecksum <- case expectedChecksum of
Nothing -> return nullPtr
Just jExpectedChecksum -> do
jExpectedChecksum' <- textToCString jExpectedChecksum
return jExpectedChecksum'
object' <- unsafeManagedPtrGetPtr object
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
maybeCallback <- case callback of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jCallback -> do
ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback))
jCallback' <- Gio.Callbacks.mk_AsyncReadyCallback (Gio.Callbacks.wrap_AsyncReadyCallback (Just ptrcallback) (Gio.Callbacks.drop_closures_AsyncReadyCallback jCallback))
poke ptrcallback jCallback'
return jCallback'
let userData = nullPtr
ostree_repo_write_metadata_async self' objtype' maybeExpectedChecksum object' maybeCancellable maybeCallback userData
touchManagedPtr self
touchManagedPtr object
whenJust cancellable touchManagedPtr
freeMem maybeExpectedChecksum
return ()
#if ENABLE_OVERLOADING
data RepoWriteMetadataAsyncMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> Maybe (T.Text) -> GVariant -> Maybe (b) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoWriteMetadataAsyncMethodInfo a signature where
overloadedMethod _ = repoWriteMetadataAsync
#endif
-- method Repo::write_metadata_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gio", name = "AsyncResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_csum", argType = TCArray False 32 (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Binary checksum value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_metadata_finish" ostree_repo_write_metadata_finish ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr Gio.AsyncResult.AsyncResult -> -- result : TInterface (Name {namespace = "Gio", name = "AsyncResult"})
Ptr (Ptr Word8) -> -- out_csum : TCArray False 32 (-1) (TBasicType TUInt8)
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Complete a call to 'GI.OSTree.Objects.Repo.repoWriteMetadataAsync'.
-}
repoWriteMetadataFinish ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.AsyncResult.IsAsyncResult b) =>
a
{- ^ /@self@/: Repo -}
-> b
{- ^ /@result@/: Result -}
-> m (ByteString)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteMetadataFinish self result_ = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
result_' <- unsafeManagedPtrCastPtr result_
outCsum <- allocMem :: IO (Ptr (Ptr Word8))
onException (do
_ <- propagateGError $ ostree_repo_write_metadata_finish self' result_' outCsum
outCsum' <- peek outCsum
outCsum'' <- (unpackByteStringWithLength 32) outCsum'
freeMem outCsum'
touchManagedPtr self
touchManagedPtr result_
freeMem outCsum
return outCsum''
) (do
freeMem outCsum
)
#if ENABLE_OVERLOADING
data RepoWriteMetadataFinishMethodInfo
instance (signature ~ (b -> m (ByteString)), MonadIO m, IsRepo a, Gio.AsyncResult.IsAsyncResult b) => O.MethodInfo RepoWriteMetadataFinishMethodInfo a signature where
overloadedMethod _ = repoWriteMetadataFinish
#endif
-- method Repo::write_metadata_stream_trusted
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Store object with this ASCII SHA256 checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object_input", argType = TInterface (Name {namespace = "Gio", name = "InputStream"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Metadata object stream", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Length, may be 0 for unknown", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_metadata_stream_trusted" ostree_repo_write_metadata_stream_trusted ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- checksum : TBasicType TUTF8
Ptr Gio.InputStream.InputStream -> -- object_input : TInterface (Name {namespace = "Gio", name = "InputStream"})
Word64 -> -- length : TBasicType TUInt64
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Store the metadata object /@variant@/; the provided /@checksum@/ is
trusted.
-}
repoWriteMetadataStreamTrusted ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> T.Text
{- ^ /@checksum@/: Store object with this ASCII SHA256 checksum -}
-> b
{- ^ /@objectInput@/: Metadata object stream -}
-> Word64
{- ^ /@length@/: Length, may be 0 for unknown -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteMetadataStreamTrusted self objtype checksum objectInput length_ cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
checksum' <- textToCString checksum
objectInput' <- unsafeManagedPtrCastPtr objectInput
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_metadata_stream_trusted self' objtype' checksum' objectInput' length_ maybeCancellable
touchManagedPtr self
touchManagedPtr objectInput
whenJust cancellable touchManagedPtr
freeMem checksum'
return ()
) (do
freeMem checksum'
)
#if ENABLE_OVERLOADING
data RepoWriteMetadataStreamTrustedMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> T.Text -> b -> Word64 -> Maybe (c) -> m ()), MonadIO m, IsRepo a, Gio.InputStream.IsInputStream b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoWriteMetadataStreamTrustedMethodInfo a signature where
overloadedMethod _ = repoWriteMetadataStreamTrusted
#endif
-- method Repo::write_metadata_trusted
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "objtype", argType = TInterface (Name {namespace = "OSTree", name = "ObjectType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Object type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "checksum", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Store object with this ASCII SHA256 checksum", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "variant", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Metadata object", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_metadata_trusted" ostree_repo_write_metadata_trusted ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
CUInt -> -- objtype : TInterface (Name {namespace = "OSTree", name = "ObjectType"})
CString -> -- checksum : TBasicType TUTF8
Ptr GVariant -> -- variant : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Store the metadata object /@variant@/; the provided /@checksum@/ is
trusted.
-}
repoWriteMetadataTrusted ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@self@/: Repo -}
-> OSTree.Enums.ObjectType
{- ^ /@objtype@/: Object type -}
-> T.Text
{- ^ /@checksum@/: Store object with this ASCII SHA256 checksum -}
-> GVariant
{- ^ /@variant@/: Metadata object -}
-> Maybe (b)
{- ^ /@cancellable@/: Cancellable -}
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteMetadataTrusted self objtype checksum variant cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
let objtype' = (fromIntegral . fromEnum) objtype
checksum' <- textToCString checksum
variant' <- unsafeManagedPtrGetPtr variant
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_metadata_trusted self' objtype' checksum' variant' maybeCancellable
touchManagedPtr self
touchManagedPtr variant
whenJust cancellable touchManagedPtr
freeMem checksum'
return ()
) (do
freeMem checksum'
)
#if ENABLE_OVERLOADING
data RepoWriteMetadataTrustedMethodInfo
instance (signature ~ (OSTree.Enums.ObjectType -> T.Text -> GVariant -> Maybe (b) -> m ()), MonadIO m, IsRepo a, Gio.Cancellable.IsCancellable b) => O.MethodInfo RepoWriteMetadataTrustedMethodInfo a signature where
overloadedMethod _ = repoWriteMetadataTrusted
#endif
-- method Repo::write_mtree
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "OSTree", name = "Repo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Repo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mtree", argType = TInterface (Name {namespace = "OSTree", name = "MutableTree"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Mutable tree", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_file", argType = TInterface (Name {namespace = "Gio", name = "File"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An #OstreeRepoFile representing @mtree's root.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_write_mtree" ostree_repo_write_mtree ::
Ptr Repo -> -- self : TInterface (Name {namespace = "OSTree", name = "Repo"})
Ptr OSTree.MutableTree.MutableTree -> -- mtree : TInterface (Name {namespace = "OSTree", name = "MutableTree"})
Ptr (Ptr Gio.File.File) -> -- out_file : TInterface (Name {namespace = "Gio", name = "File"})
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
Write all metadata objects for /@mtree@/ to repo; the resulting
/@outFile@/ points to the 'GI.OSTree.Enums.ObjectTypeDirTree' object that
the /@mtree@/ represented.
-}
repoWriteMtree ::
(B.CallStack.HasCallStack, MonadIO m, IsRepo a, OSTree.MutableTree.IsMutableTree b, Gio.Cancellable.IsCancellable c) =>
a
{- ^ /@self@/: Repo -}
-> b
{- ^ /@mtree@/: Mutable tree -}
-> Maybe (c)
{- ^ /@cancellable@/: Cancellable -}
-> m (Gio.File.File)
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoWriteMtree self mtree cancellable = liftIO $ do
self' <- unsafeManagedPtrCastPtr self
mtree' <- unsafeManagedPtrCastPtr mtree
outFile <- allocMem :: IO (Ptr (Ptr Gio.File.File))
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
_ <- propagateGError $ ostree_repo_write_mtree self' mtree' outFile maybeCancellable
outFile' <- peek outFile
outFile'' <- (wrapObject Gio.File.File) outFile'
touchManagedPtr self
touchManagedPtr mtree
whenJust cancellable touchManagedPtr
freeMem outFile
return outFile''
) (do
freeMem outFile
)
#if ENABLE_OVERLOADING
data RepoWriteMtreeMethodInfo
instance (signature ~ (b -> Maybe (c) -> m (Gio.File.File)), MonadIO m, IsRepo a, OSTree.MutableTree.IsMutableTree b, Gio.Cancellable.IsCancellable c) => O.MethodInfo RepoWriteMtreeMethodInfo a signature where
overloadedMethod _ = repoWriteMtree
#endif
-- method Repo::create_at
-- method type : MemberFunction
-- Args : [Arg {argCName = "dfd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Directory fd", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface (Name {namespace = "OSTree", name = "RepoMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The mode to store the repository in", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a{sv}: See below for accepted keys", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "Cancellable", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "Repo"}))
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_create_at" ostree_repo_create_at ::
Int32 -> -- dfd : TBasicType TInt
CString -> -- path : TBasicType TUTF8
CUInt -> -- mode : TInterface (Name {namespace = "OSTree", name = "RepoMode"})
Ptr GVariant -> -- options : TVariant
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO (Ptr Repo)
{- |
This is a file-descriptor relative version of 'GI.OSTree.Objects.Repo.repoCreate'.
Create the underlying structure on disk for the repository, and call
'GI.OSTree.Objects.Repo.repoOpenAt' on the result, preparing it for use.
If a repository already exists at /@dfd@/ + /@path@/ (defined by an @objects\/@
subdirectory existing), then this function will simply call
'GI.OSTree.Objects.Repo.repoOpenAt'. In other words, this function cannot be used to change
the mode or configuration (@repo\/config@) of an existing repo.
The /@options@/ dict may contain:
- collection-id: s: Set as collection ID in repo\/config (Since 2017.9)
-}
repoCreateAt ::
(B.CallStack.HasCallStack, MonadIO m, Gio.Cancellable.IsCancellable a) =>
Int32
{- ^ /@dfd@/: Directory fd -}
-> T.Text
{- ^ /@path@/: Path -}
-> OSTree.Enums.RepoMode
{- ^ /@mode@/: The mode to store the repository in -}
-> GVariant
{- ^ /@options@/: a{sv}: See below for accepted keys -}
-> Maybe (a)
{- ^ /@cancellable@/: Cancellable -}
-> m Repo
{- ^ __Returns:__ A new OSTree repository reference /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoCreateAt dfd path mode options cancellable = liftIO $ do
path' <- textToCString path
let mode' = (fromIntegral . fromEnum) mode
options' <- unsafeManagedPtrGetPtr options
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ ostree_repo_create_at dfd path' mode' options' maybeCancellable
checkUnexpectedReturnNULL "repoCreateAt" result
result' <- (wrapObject Repo) result
touchManagedPtr options
whenJust cancellable touchManagedPtr
freeMem path'
return result'
) (do
freeMem path'
)
#if ENABLE_OVERLOADING
#endif
-- method Repo::mode_from_string
-- method type : MemberFunction
-- Args : [Arg {argCName = "mode", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_mode", argType = TInterface (Name {namespace = "OSTree", name = "RepoMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_mode_from_string" ostree_repo_mode_from_string ::
CString -> -- mode : TBasicType TUTF8
CUInt -> -- out_mode : TInterface (Name {namespace = "OSTree", name = "RepoMode"})
Ptr (Ptr GError) -> -- error
IO CInt
{- |
/No description available in the introspection data./
-}
repoModeFromString ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> OSTree.Enums.RepoMode
-> m ()
{- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoModeFromString mode outMode = liftIO $ do
mode' <- textToCString mode
let outMode' = (fromIntegral . fromEnum) outMode
onException (do
_ <- propagateGError $ ostree_repo_mode_from_string mode' outMode'
freeMem mode'
return ()
) (do
freeMem mode'
)
#if ENABLE_OVERLOADING
#endif
-- method Repo::open_at
-- method type : MemberFunction
-- Args : [Arg {argCName = "dfd", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Directory fd", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Path", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "OSTree", name = "Repo"}))
-- throws : True
-- Skip return : False
foreign import ccall "ostree_repo_open_at" ostree_repo_open_at ::
Int32 -> -- dfd : TBasicType TInt
CString -> -- path : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
Ptr (Ptr GError) -> -- error
IO (Ptr Repo)
{- |
This combines 'GI.OSTree.Objects.Repo.repoNew' (but using fd-relative access) with
'GI.OSTree.Objects.Repo.repoOpen'. Use this when you know you should be operating on an
already extant repository. If you want to create one, use 'GI.OSTree.Objects.Repo.repoCreateAt'.
-}
repoOpenAt ::
(B.CallStack.HasCallStack, MonadIO m, Gio.Cancellable.IsCancellable a) =>
Int32
{- ^ /@dfd@/: Directory fd -}
-> T.Text
{- ^ /@path@/: Path -}
-> Maybe (a)
-> m Repo
{- ^ __Returns:__ An accessor object for an OSTree repository located at /@dfd@/ + /@path@/ /(Can throw 'Data.GI.Base.GError.GError')/ -}
repoOpenAt dfd path cancellable = liftIO $ do
path' <- textToCString path
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ ostree_repo_open_at dfd path' maybeCancellable
checkUnexpectedReturnNULL "repoOpenAt" result
result' <- (wrapObject Repo) result
whenJust cancellable touchManagedPtr
freeMem path'
return result'
) (do
freeMem path'
)
#if ENABLE_OVERLOADING
#endif
-- method Repo::pull_default_console_progress_changed
-- method type : MemberFunction
-- Args : [Arg {argCName = "progress", argType = TInterface (Name {namespace = "OSTree", name = "AsyncProgress"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Async progress", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "User data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_pull_default_console_progress_changed" ostree_repo_pull_default_console_progress_changed ::
Ptr OSTree.AsyncProgress.AsyncProgress -> -- progress : TInterface (Name {namespace = "OSTree", name = "AsyncProgress"})
Ptr () -> -- user_data : TBasicType TPtr
IO ()
{- |
Convenient \"changed\" callback for use with
'GI.OSTree.Objects.AsyncProgress.asyncProgressNewAndConnect' when pulling from a remote
repository.
Depending on the state of the 'GI.OSTree.Objects.AsyncProgress.AsyncProgress', either displays a
custom status message, or else outstanding fetch progress in bytes\/sec,
or else outstanding content or metadata writes to the repository in
number of objects.
Compatibility note: this function previously assumed that /@userData@/
was a pointer to a @/GSConsole/@ instance. This is no longer the case,
and /@userData@/ is ignored.
-}
repoPullDefaultConsoleProgressChanged ::
(B.CallStack.HasCallStack, MonadIO m, OSTree.AsyncProgress.IsAsyncProgress a) =>
a
{- ^ /@progress@/: Async progress -}
-> Ptr ()
{- ^ /@userData@/: User data -}
-> m ()
repoPullDefaultConsoleProgressChanged progress userData = liftIO $ do
progress' <- unsafeManagedPtrCastPtr progress
ostree_repo_pull_default_console_progress_changed progress' userData
touchManagedPtr progress
return ()
#if ENABLE_OVERLOADING
#endif
-- XXX Could not generate method Repo::traverse_new_parents
-- Error was : Not implemented: "GHashTable element of type TVariant unsupported."
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoTraverseNewParentsMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "traverseNewParents" Repo) => O.MethodInfo RepoTraverseNewParentsMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- XXX Could not generate method Repo::traverse_new_reachable
-- Error was : Not implemented: "GHashTable element of type TVariant unsupported."
#if ENABLE_OVERLOADING
-- XXX: Dummy instance, since code generation failed.
-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
data RepoTraverseNewReachableMethodInfo
instance (p ~ (), o ~ O.MethodResolutionFailed "traverseNewReachable" Repo) => O.MethodInfo RepoTraverseNewReachableMethodInfo o p where
overloadedMethod _ = undefined
#endif
-- method Repo::traverse_parents_get_commits
-- method type : MemberFunction
-- Args : [Arg {argCName = "parents", argType = TGHash (TBasicType TPtr) (TBasicType TPtr), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
-- throws : False
-- Skip return : False
foreign import ccall "ostree_repo_traverse_parents_get_commits" ostree_repo_traverse_parents_get_commits ::
Ptr (GHashTable (Ptr ()) (Ptr ())) -> -- parents : TGHash (TBasicType TPtr) (TBasicType TPtr)
Ptr GVariant -> -- object : TVariant
IO (Ptr CString)
{- |
Gets all the commits that a certain object belongs to, as recorded
by a parents table gotten from ostree_repo_traverse_commit_union_with_parents.
/Since: 2018.5/
-}
repoTraverseParentsGetCommits ::
(B.CallStack.HasCallStack, MonadIO m) =>
Map.Map (Ptr ()) (Ptr ())
-> GVariant
-> m [T.Text]
{- ^ __Returns:__ An array of checksums for
the commits the key belongs to. -}
repoTraverseParentsGetCommits parents object = liftIO $ do
let parents' = Map.toList parents
let parents'' = mapFirst ptrPackPtr parents'
let parents''' = mapSecond ptrPackPtr parents''
parents'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing parents'''
object' <- unsafeManagedPtrGetPtr object
result <- ostree_repo_traverse_parents_get_commits parents'''' object'
checkUnexpectedReturnNULL "repoTraverseParentsGetCommits" result
result' <- unpackZeroTerminatedUTF8CArray result
mapZeroTerminatedCArray freeMem result
freeMem result
touchManagedPtr object
unrefGHashTable parents''''
return result'
#if ENABLE_OVERLOADING
#endif