File and Path Manipulation API.

Files

file  rpmfileutil.h
 

File and path manipulation helper functions.


Typedefs

typedef enum rpmCompressedMagic_e rpmCompressedMagic

Enumerations

enum  rpmCompressedMagic_e {
  COMPRESSED_NOT = 0, COMPRESSED_OTHER = 1, COMPRESSED_BZIP2 = 2, COMPRESSED_ZIP = 3,
  COMPRESSED_LZMA = 4, COMPRESSED_XZ = 5
}

Functions

int rpmDoDigest (pgpHashAlgo algo, const char *fn, int asAscii, unsigned char *digest, rpm_loff_t *fsizep)
 Calculate a file digest and size.
FD_t rpmMkTemp (char *templ)
 Thin wrapper for mkstemp(3).
FD_t rpmMkTempFile (const char *prefix, char **fn)
 Return file handle for a temporaray file.
int rpmioMkpath (const char *path, mode_t mode, uid_t uid, gid_t gid)
 Insure that directories in path exist, creating as needed.
int rpmMkdirs (const char *root, const char *pathstr)
 Create several directories (including parents if needed) in one go.
char * rpmCleanPath (char *path)
 Canonicalize file path.
char * rpmGenPath (const char *urlroot, const char *urlmdir, const char *urlfile)
 Merge 3 args into path, any or all of which may be a url.
char * rpmGetPath (const char *path,...) RPM_GNUC_NULL_TERMINATED
 Return (malloc'ed) expanded, canonicalized, file path.
int rpmGlob (const char *patterns, int *argcPtr, ARGV_t *argvPtr)
 Return URL path(s) from a (URL prefixed) pattern glob.
char * rpmEscapeSpaces (const char *s)
 Escape isspace(3) characters in string.
int rpmFileIsCompressed (const char *file, rpmCompressedMagic *compressed)
 Return type of compression used in file.
int rpmFileHasSuffix (const char *path, const char *suffix)
 Check if path (string) ends with given suffix.
char * rpmGetCwd (void)
 Like getcwd() but the result is malloced.

Typedef Documentation


Enumeration Type Documentation

Enumerator:
COMPRESSED_NOT 

not compressed

COMPRESSED_OTHER 

gzip can handle

COMPRESSED_BZIP2 

bzip2 can handle

COMPRESSED_ZIP 

unzip can handle

COMPRESSED_LZMA 

lzma can handle

COMPRESSED_XZ 

xz can handle

Definition at line 20 of file rpmfileutil.h.


Function Documentation

char* rpmCleanPath ( char *  path  ) 

Canonicalize file path.

Parameters:
path path to canonicalize (in-place)
Returns:
pointer to path
int rpmDoDigest ( pgpHashAlgo  algo,
const char *  fn,
int  asAscii,
unsigned char *  digest,
rpm_loff_t fsizep 
)

Calculate a file digest and size.

Parameters:
algo digest algorithm
fn file name
asAscii return digest as ascii string?
Return values:
digest address of calculated digest
*fsizep file size pointer (or NULL)
Returns:
0 on success, 1 on error
char* rpmEscapeSpaces ( const char *  s  ) 

Escape isspace(3) characters in string.

Parameters:
s string
Returns:
escaped string
int rpmFileHasSuffix ( const char *  path,
const char *  suffix 
)

Check if path (string) ends with given suffix.

Parameters:
path (path) string
suffix suffix string to check for
Returns:
1 if true, 0 otherwise
int rpmFileIsCompressed ( const char *  file,
rpmCompressedMagic compressed 
)

Return type of compression used in file.

Parameters:
file name of file
Return values:
compressed address of compression type
Returns:
0 on success, 1 on I/O error
char* rpmGenPath ( const char *  urlroot,
const char *  urlmdir,
const char *  urlfile 
)

Merge 3 args into path, any or all of which may be a url.

The leading part of the first URL encountered is used for the result, other URL prefixes are discarded, permitting a primitive form of URL inheiritance.

Parameters:
urlroot root URL (often path to chroot, or NULL)
urlmdir directory URL (often a directory, or NULL)
urlfile file URL (often a file, or NULL)
Returns:
expanded, merged, canonicalized path (malloc'ed)

Referenced by buildForTarget(), and main().

char* rpmGetCwd ( void   ) 

Like getcwd() but the result is malloced.

Returns:
current working directory (malloc'ed)

Referenced by buildForTarget().

char* rpmGetPath ( const char *  path,
  ... 
)

Return (malloc'ed) expanded, canonicalized, file path.

Parameters:
path macro(s) to expand (NULL terminates list)
Returns:
canonicalized path (malloc'ed)

Referenced by getTarSpec().

int rpmGlob ( const char *  patterns,
int *  argcPtr,
ARGV_t argvPtr 
)

Return URL path(s) from a (URL prefixed) pattern glob.

Parameters:
patterns glob pattern
Return values:
*argcPtr no. of paths
*argvPtr ARGV_t array of paths
Returns:
0 on success
int rpmioMkpath ( const char *  path,
mode_t  mode,
uid_t  uid,
gid_t  gid 
)

Insure that directories in path exist, creating as needed.

Parameters:
path directory path
mode directory mode (if created)
uid directory uid (if created), or -1 to skip
gid directory uid (if created), or -1 to skip
Returns:
0 on success, errno (or -1) on error
int rpmMkdirs ( const char *  root,
const char *  pathstr 
)

Create several directories (including parents if needed) in one go.

Macros in pathstr will be expanded in the process.

Parameters:
root leading root directory (or NULL for none)
pathstr list of directories separated with :
Returns:
0 if all directories were successfully created (or already existed), non-zero otherwise

Referenced by buildForTarget().

FD_t rpmMkTemp ( char *  templ  ) 

Thin wrapper for mkstemp(3).

Parameters:
templ template for temporary filename
Returns:
file handle or NULL on error
FD_t rpmMkTempFile ( const char *  prefix,
char **  fn 
)

Return file handle for a temporaray file.

A unique temporaray file path will be created in [prefix/]%{_tmppath} directory. The file name and the open file handle are returned.

Parameters:
prefix leading part of temp file path
Return values:
fn temp file name (or NULL)
Returns:
fdptr open file handle or NULL on error

Generated on 8 Jan 2010 for rpm by  doxygen 1.6.1