#include "system.h"
#include <rpmlib.h>
#include <rpmte.h>
#include <rpmgi.h>
#include <rpmdb.h>
#include <rpmmacro.h>
#include "manifest.h"
#include "debug.h"
Go to the source code of this file.
Defines | |
#define | _RPMGI_INTERNAL |
#define | _RPMTS_INTERNAL |
Functions | |
static const char * | ftsInfoStr (int fts_info) |
static FD_t | rpmgiOpen (const char *path, const char *fmode) |
Open a file after macro expanding path. | |
static rpmRC | rpmgiLoadManifest (rpmgi gi, const char *path) |
Load manifest into iterator arg list. | |
static Header | rpmgiReadHeader (rpmgi gi, const char *path) |
Return header from package. | |
static rpmRC | rpmgiLoadReadHeader (rpmgi gi) |
Read next header from package, lazily expanding manifests as found. | |
static rpmRC | rpmgiWalkPathFilter (rpmgi gi) |
Filter file tree walk path. | |
static rpmRC | rpmgiWalkReadHeader (rpmgi gi) |
Read header from next package, lazily walking file tree. | |
static rpmRC | rpmgiGlobArgv (rpmgi gi, ARGV_t argv) |
Append globbed arg list to iterator. | |
static rpmRC | rpmgiInitFilter (rpmgi gi) |
Return rpmdb match iterator with filters (if any) set. | |
rpmgi | XrpmgiUnlink (rpmgi gi, const char *msg, const char *fn, unsigned ln) |
rpmgi | XrpmgiLink (rpmgi gi, const char *msg, const char *fn, unsigned ln) |
rpmgi | rpmgiFree (rpmgi gi) |
Destroy a generalized iterator. | |
rpmgi | rpmgiNew (rpmts ts, int tag, const void *keyp, size_t keylen) |
Return a generalized iterator. | |
rpmRC | rpmgiNext (rpmgi gi) |
Perform next iteration step. | |
const char * | rpmgiHdrPath (rpmgi gi) |
Return current header path. | |
Header | rpmgiHeader (rpmgi gi) |
Return current iteration header. | |
rpmts | rpmgiTs (rpmgi gi) |
Return current iteration transaction set. | |
rpmRC | rpmgiSetArgs (rpmgi gi, ARGV_t argv, int ftsOpts, rpmgiFlags flags) |
Load iterator args. | |
Variables | |
int | _rpmgi_debug = 0 |
rpmgiFlags | giFlags = RPMGI_NONE |
static int | indent = 2 |
static const char * | ftsInfoStrings [] |
static const char* ftsInfoStr | ( | int | fts_info | ) | [static] |
Definition at line 54 of file rpmgi.c.
References ftsInfoStrings.
Referenced by ftsPrint(), rpmfts_print(), and rpmgiWalkPathFilter().
Destroy a generalized iterator.
gi | generalized iterator |
Definition at line 405 of file rpmgi.c.
References _free(), argvFree(), Fclose(), Fts_close(), headerFree(), rpmdbFreeIterator(), rpmgiUnlink, rpmtsFree(), and rpmtsiFree.
Referenced by rpmcliArgIter().
Append globbed arg list to iterator.
gi | generalized iterator | |
argv | arg list to be globbed (or NULL) |
Definition at line 288 of file rpmgi.c.
References argvAppend(), argvFree(), RPMDBI_ARGLIST, RPMDBI_FTSWALK, RPMDBI_HDLIST, RPMGI_NOGLOB, rpmGlob(), and RPMRC_OK.
Referenced by rpmgiSetArgs().
const char* rpmgiHdrPath | ( | rpmgi | gi | ) |
Return current header path.
gi | generalized iterator |
Definition at line 668 of file rpmgi.c.
Referenced by rpmcliArgIter().
Return current iteration header.
gi | generalized iterator |
Definition at line 673 of file rpmgi.c.
Referenced by rpmgiShowMatches().
Return rpmdb match iterator with filters (if any) set.
gi | generalized iterator |
Definition at line 330 of file rpmgi.c.
References _, _free(), _rpmgi_debug, rpmdbFreeIterator(), rpmdbSetIteratorRE(), RPMERR_QUERYINFO, rpmError, RPMMIRE_DEFAULT, RPMRC_FAIL, RPMRC_OK, RPMTAG_NAME, rpmtsInitIterator(), tagName(), tagValue(), and xstrdup().
Referenced by rpmgiNext().
Load manifest into iterator arg list.
gi | generalized iterator | |
path | file path |
Definition at line 96 of file rpmgi.c.
References Fclose(), rpmgiOpen(), RPMRC_FAIL, and rpmReadPackageManifest().
Referenced by rpmgiLoadReadHeader().
Read next header from package, lazily expanding manifests as found.
gi | generalized iterator |
Definition at line 156 of file rpmgi.c.
References _free(), errno, headerFree(), headerLink(), RPMGI_NOHEADER, RPMGI_NOMANIFEST, rpmgiLoadManifest(), rpmgiReadHeader(), RPMRC_NOTFOUND, and RPMRC_OK.
Referenced by rpmgiNext().
Return a generalized iterator.
ts | transaction set | |
tag | rpm tag | |
keyp | key data (NULL for sequential access) | |
keylen | key data length (0 will use strlen(keyp)) |
Definition at line 444 of file rpmgi.c.
References rpmgiLink, rpmtsLink, and xcalloc().
Referenced by rpmcliArgIter().
Perform next iteration step.
gi | generalized iterator |
Definition at line 478 of file rpmgi.c.
References _, _free(), _rpmgi_debug, Fclose(), Fts_close(), Fts_open(), HEADER_MAGIC_YES, headerFree(), headerLink(), headerRead(), rpmdbFreeIterator(), rpmdbGetIteratorOffset(), RPMDBI_ADDED, RPMDBI_ARGLIST, RPMDBI_FTSWALK, RPMDBI_HDLIST, RPMDBI_PACKAGES, rpmdbNextIterator(), rpmExpand(), RPMGI_NOHEADER, RPMGI_TSADD, RPMGI_TSORDER, rpmgiInitFilter(), rpmgiLoadReadHeader(), rpmgiOpen(), rpmgiWalkReadHeader(), rpmIsVerbose, RPMMESS_VERBOSE, rpmMessage, rpmpsFree(), rpmpsNumProblems(), rpmpsPrint(), RPMRC_NOTFOUND, RPMRC_OK, rpmteHeader(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsCloseDB(), rpmtsiFree, rpmtsiInit, rpmtsiNext(), rpmtsOrder(), rpmtsProblems(), TR_ADDED, and xstrdup().
Referenced by rpmcliArgIter(), and rpmgiShowMatches().
static FD_t rpmgiOpen | ( | const char * | path, | |
const char * | fmode | |||
) | [static] |
Open a file after macro expanding path.
path | file path | |
fmode | open mode |
Definition at line 73 of file rpmgi.c.
References _, _free(), Fclose(), Ferror(), Fopen(), Fstrerror(), RPMERR_OPEN, rpmError, and rpmExpand().
Referenced by rpmgiLoadManifest(), rpmgiNext(), and rpmgiReadHeader().
Return header from package.
gi | generalized iterator | |
path | file path |
Definition at line 117 of file rpmgi.c.
References Fclose(), headerFree(), rpmgiOpen(), RPMRC_FAIL, RPMRC_NOKEY, RPMRC_NOTFOUND, RPMRC_NOTTRUSTED, RPMRC_OK, and rpmReadPackageFile().
Referenced by rpmgiLoadReadHeader(), and rpmgiWalkReadHeader().
rpmRC rpmgiSetArgs | ( | rpmgi | gi, | |
ARGV_t | argv, | |||
int | ftsOpts, | |||
rpmgiFlags | flags | |||
) |
Load iterator args.
gi | generalized iterator | |
argv | arg list | |
ftsOpts | fts(3) flags | |
flags | iterator flags |
Definition at line 687 of file rpmgi.c.
References rpmgiGlobArgv().
Referenced by rpmcliArgIter().
Filter file tree walk path.
gi | generalized iterator |
Definition at line 205 of file rpmgi.c.
References _rpmgi_debug, FTS_D, FTS_DC, FTS_DEFAULT, FTS_DNR, FTS_DOT, FTS_DP, FTS_ERR, FTS_F, _ftsent::fts_info, FTS_INIT, _ftsent::fts_level, _ftsent::fts_name, _ftsent::fts_namelen, FTS_NS, FTS_NSOK, FTS_SL, FTS_SLNONE, FTS_W, ftsInfoStr(), indent, RPMMESS_DEBUG, rpmMessage, RPMRC_NOTFOUND, and RPMRC_OK.
Referenced by rpmgiWalkReadHeader().
Read header from next package, lazily walking file tree.
gi | generalized iterator |
Definition at line 254 of file rpmgi.c.
References Fts_read(), headerFree(), headerLink(), RPMGI_NOHEADER, rpmgiReadHeader(), rpmgiWalkPathFilter(), RPMRC_NOTFOUND, and RPMRC_OK.
Referenced by rpmgiNext().
Definition at line 394 of file rpmgi.c.
References _rpmgi_debug.
Definition at line 383 of file rpmgi.c.
References _rpmgi_debug.
int _rpmgi_debug = 0 |
const char* ftsInfoStrings[] [static] |
Initial value:
{ "UNKNOWN", "D", "DC", "DEFAULT", "DNR", "DOT", "DP", "ERR", "F", "INIT", "NS", "NSOK", "SL", "SLNONE", "W", }
Definition at line 35 of file rpmgi.c.
Referenced by ftsInfoStr().
rpmgiFlags giFlags = RPMGI_NONE |
int indent = 2 [static] |
Definition at line 32 of file rpmgi.c.
Referenced by ftsPrint(), ftsStashLatest(), rpmfts_print(), and rpmgiWalkPathFilter().