tools/rpmcache.c File Reference

#include "system.h"
#include <fnmatch.h>
#include <fts.h>
#include <rpmcli.h>
#include "rpmps.h"
#include "rpmdb.h"
#include "rpmds.h"
#include "rpmts.h"
#include "debug.h"

Go to the source code of this file.

Data Structures

struct  ftsglob_s
struct  Item_s

Typedefs

typedef Item_sItem

Functions

static Item freeItem (Item item)
static Item newItem (void)
static int cmpItem (const void *a, const void *b)
static void freeItems (void)
static int ftsCachePrint (rpmts ts, FILE *fp)
static int ftsCacheUpdate (rpmts ts)
static int archOkay (const char *pkgArch)
static int osOkay (const char *pkgOs)
static int ftsStashLatest (FTSENT *fts, rpmts ts)
static const char * ftsInfoStr (int fts_info)
static int ftsPrint (FTS *ftsp, FTSENT *fts, rpmts ts)
static void initGlobs (rpmts ts, const char **argv)
 Initialize fts and glob structures.
int main (int argc, char *const argv[])

Variables

const char * program_name
static int _debug = 0
static int noCache = 0
static char ** ftsSet
const char * bhpath
int bhpathlen = 0
int bhlvl = -1
static struct ftsglob_sbhglobs
static int nbhglobs = 5
static int indent = 2
static Itemitems = NULL
static int nitems = 0
static const char * ftsInfoStrings []
static rpmVSFlags vsflags = 0
static struct poptOption optionsTable []


Detailed Description

Definition in file rpmcache.c.


Typedef Documentation

typedef struct Item_s * Item


Function Documentation

static int archOkay ( const char *  pkgArch  )  [static]

Definition at line 165 of file rpmcache.c.

References RPM_MACHTABLE_INSTARCH, and rpmMachineScore().

static int cmpItem ( const void *  a,
const void *  b 
) [static]

Definition at line 67 of file rpmcache.c.

References rpmdsN(), and Item_s::this.

Referenced by ftsStashLatest().

static Item freeItem ( Item  item  )  [inline, static]

Definition at line 52 of file rpmcache.c.

References _free(), Item_s::h, headerFree(), Item_s::path, rpmdsFree(), and Item_s::this.

Referenced by freeItems(), and ftsStashLatest().

static void freeItems ( void   )  [static]

Definition at line 74 of file rpmcache.c.

References _free(), freeItem(), items, and nitems.

Referenced by main().

static int ftsCachePrint ( rpmts  ts,
FILE *  fp 
) [static]

Definition at line 82 of file rpmcache.c.

References items, and nitems.

Referenced by main().

static int ftsCacheUpdate ( rpmts  ts  )  [static]

Definition at line 102 of file rpmcache.c.

References headerAddOrAppendEntry(), headerGetEntryMinMemory(), items, nitems, RMIL_CMDLINE, RPM_INT32_TYPE, RPM_STRING_ARRAY_TYPE, rpmdbAdd(), rpmdbFreeIterator(), rpmdbGetIteratorCount(), rpmDefineMacro(), RPMTAG_CACHECTIME, RPMTAG_CACHEPKGMTIME, RPMTAG_CACHEPKGPATH, RPMTAG_CACHEPKGSIZE, RPMTAG_SIGMD5, rpmtsCloseDB(), rpmtsGetRdb(), rpmtsGetTid(), rpmtsInitIterator(), and rpmtsOpenDB().

Referenced by main().

static const char* ftsInfoStr ( int  fts_info  )  [static]

Definition at line 308 of file rpmcache.c.

References ftsInfoStrings.

static int ftsPrint ( FTS ftsp,
FTSENT fts,
rpmts  ts 
) [static]

Definition at line 314 of file rpmcache.c.

References _debug, bhglobs, bhlvl, bhpath, bhpathlen, ftsglob_s::fnflags, 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, _ftsent::fts_parent, _ftsent::fts_path, _ftsent::fts_pathlen, Fts_set(), FTS_SKIP, FTS_SL, FTS_SLNONE, FTS_W, ftsInfoStr(), ftsStashLatest(), indent, nbhglobs, and ftsglob_s::patterns.

Referenced by main().

static int ftsStashLatest ( FTSENT fts,
rpmts  ts 
) [static]

Definition at line 181 of file rpmcache.c.

References alloca(), archOkay(), cmpItem(), Fclose(), Ferror(), Fopen(), freeItem(), _ftsent::fts_accpath, _ftsent::fts_level, _ftsent::fts_name, _ftsent::fts_path, _ftsent::fts_statp, Item_s::h, headerFree(), headerGetEntry(), headerLink(), indent, items, Item_s::mtime, newItem(), nitems, osOkay(), Item_s::path, rpmdsCompare(), rpmdsFree(), rpmdsThis(), RPMMESS_DEBUG, rpmMessage, RPMRC_OK, rpmReadPackageFile(), RPMSENSE_EQUAL, RPMSENSE_LESS, RPMTAG_ARCH, RPMTAG_OS, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, Item_s::size, Stat(), Item_s::this, xrealloc(), and xstrdup().

Referenced by ftsPrint().

static void initGlobs ( rpmts  ts,
const char **  argv 
) [static]

Initialize fts and glob structures.

Parameters:
ts transaction set
argv package names to match

Definition at line 441 of file rpmcache.c.

References _free(), bhglobs, bhpath, bhpathlen, ftsSet, Glob_pattern_p(), nbhglobs, ftsglob_s::patterns, rpmExpand(), RPMMESS_DEBUG, rpmMessage, stpcpy(), and xcalloc().

Referenced by main().

int main ( int  argc,
char *const   argv[] 
)

Definition at line 534 of file rpmcache.c.

References _, __progname, _free(), _RPMVSF_NODIGESTS, _RPMVSF_NOSIGNATURES, EXIT_FAILURE, freeItems(), Fts_close(), FTS_COMFOLLOW, FTS_LOGICAL, FTS_NOSTAT, Fts_open(), Fts_read(), ftsCachePrint(), ftsCacheUpdate(), ftsOpts, ftsPrint(), ftsSet, initGlobs(), noCache, optionsTable, rpmcliFini(), rpmcliInit(), rpmcliQueryFlags, rpmExpand(), rpmMkdirPath(), RPMRC_FAIL, RPMRC_OK, rpmtsCreate(), rpmtsFree(), rpmtsSetTid(), rpmtsSetVSFlags(), RPMVSF_NOHDRCHK, VERIFY_DIGEST, VERIFY_HDRCHK, VERIFY_SIGNATURE, and vsflags.

static Item newItem ( void   )  [inline, static]

Definition at line 62 of file rpmcache.c.

References xcalloc().

Referenced by ftsStashLatest().

static int osOkay ( const char *  pkgOs  )  [static]

Definition at line 174 of file rpmcache.c.

References RPM_MACHTABLE_INSTOS, and rpmMachineScore().


Variable Documentation

int _debug = 0 [static]

Definition at line 20 of file rpmcache.c.

struct ftsglob_s* bhglobs [static]

Definition at line 36 of file rpmcache.c.

Referenced by ftsPrint(), and initGlobs().

int bhlvl = -1

Definition at line 29 of file rpmcache.c.

Referenced by ftsPrint().

const char* bhpath

Definition at line 27 of file rpmcache.c.

Referenced by ftsPrint(), and initGlobs().

int bhpathlen = 0

Definition at line 28 of file rpmcache.c.

Referenced by ftsPrint(), and initGlobs().

const char* ftsInfoStrings[] [static]

Initial value:

 {
    "UNKNOWN",
    "D",
    "DC",
    "DEFAULT",
    "DNR",
    "DOT",
    "DP",
    "ERR",
    "F",
    "INIT",
    "NS",
    "NSOK",
    "SL",
    "SLNONE",
    "W",
}

Definition at line 290 of file rpmcache.c.

char** ftsSet [static]

Definition at line 25 of file rpmcache.c.

Referenced by initGlobs(), main(), and recurseDir().

int indent = 2 [static]

Definition at line 39 of file rpmcache.c.

Item* items = NULL [static]

Definition at line 49 of file rpmcache.c.

Referenced by freeItems(), ftsCachePrint(), ftsCacheUpdate(), ftsStashLatest(), and rpmsxParse().

int nbhglobs = 5 [static]

Definition at line 37 of file rpmcache.c.

Referenced by ftsPrint(), and initGlobs().

int nitems = 0 [static]

Definition at line 50 of file rpmcache.c.

Referenced by freeItems(), fts_build(), Fts_open(), ftsCachePrint(), ftsCacheUpdate(), and ftsStashLatest().

int noCache = 0 [static]

Definition at line 23 of file rpmcache.c.

Referenced by main().

struct poptOption optionsTable[] [static]

Initial value:

 {
 { "nolegacy", '\0', POPT_BIT_SET,      &vsflags, RPMVSF_NEEDPAYLOAD,
         "don't verify header+payload signature" , NULL },

 { "nocache", '\0', POPT_ARG_VAL,   &noCache, -1,
         "don't update cache database, only print package paths" , NULL },

 { NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmcliFtsPoptTable, 0,
         "File tree walk options:" ,
        NULL },

 { NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmcliAllPoptTable, 0,
         "Common options for all rpm modes and executables:" ,
        NULL },

    POPT_AUTOALIAS
    POPT_AUTOHELP
    POPT_TABLEEND
}

Definition at line 513 of file rpmcache.c.

const char* program_name

Definition at line 6 of file rpmcache.c.

rpmVSFlags vsflags = 0 [static]

Definition at line 511 of file rpmcache.c.

Referenced by build(), headerCheck(), main(), rpmcliQuery(), rpmcliVerify(), rpmErase(), rpmGraph(), rpmInstall(), rpmReadPackageFile(), rpmts_Create(), rpmts_init(), rpmts_SetVSFlags(), rpmtsRun(), and rpmtsVSFlags().


Generated on Fri Oct 12 08:44:56 2007 for rpm by  doxygen 1.5.2