createrepo_c library
0.9.1
C library for metadata manipulation
|
Data Structures | |
struct | cr_EVR |
struct | cr_NEVR |
struct | cr_NEVRA |
struct | cr_Version |
struct | cr_HeaderRangeStruct |
Macros | |
#define | CR_STATICSTRLEN(s) (sizeof(s)/sizeof(s[0])) |
#define | CR_ARRAYLEN(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x]))))) |
#define | cr_compress_file(SRC, DST, COMTYPE, ERR) cr_compress_file_with_stat(SRC, DST, COMTYPE, NULL, ERR) |
#define | cr_decompress_file(SRC, DST, COMTYPE, ERR) cr_decompress_file_with_stat(SRC, DST, COMTYPE, NULL, ERR) |
#define | cr_cmp_nevra(A, B) |
Enumerations | |
enum | cr_CpFlags { CR_CP_DEFAULT = (1<<0), CR_CP_RECURSIVE = (1<<1), CR_CP_PRESERVE_ALL = (1<<2) } |
enum | cr_RmFlags { CR_RM_DEFAULT = (1<<0), CR_RM_RECURSIVE = (1<<1), CR_RM_FORCE = (1<<2) } |
Functions | |
const char * | cr_flag_to_str (gint64 flags) |
cr_EVR * | cr_str_to_evr (const char *string, GStringChunk *chunk) |
void | cr_evr_free (cr_EVR *evr) |
struct cr_HeaderRangeStruct | cr_get_header_byte_range (const char *filename, GError **err) |
char * | cr_get_filename (const char *filepath) |
int | cr_download (CURL *handle, const char *url, const char *destination, GError **err) |
gboolean | cr_copy_file (const char *src, const char *dst, GError **err) |
int | cr_compress_file_with_stat (const char *src, const char *dst, cr_CompressionType comtype, cr_ContentStat *stat, GError **err) |
int | cr_decompress_file_with_stat (const char *src, const char *dst, cr_CompressionType comtype, cr_ContentStat *stat, GError **err) |
gboolean | cr_better_copy_file (const char *src, const char *dst, GError **err) |
int | cr_remove_dir (const char *path, GError **err) |
char * | cr_normalize_dir_path (const char *path) |
struct cr_Version | cr_str_to_version (const char *str) |
int | cr_cmp_version_str (const char *str1, const char *str2) |
void | cr_null_log_fn (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data) |
void | cr_log_fn (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data) |
void | cr_slist_free_full (GSList *list, GDestroyNotify free_f) |
void | cr_queue_free_full (GQueue *queue, GDestroyNotify free_f) |
cr_NEVRA * | cr_split_rpm_filename (const char *filename) |
int | cr_cmp_evr (const char *e1, const char *v1, const char *r1, const char *e2, const char *v2, const char *r2) |
int | cr_warning_cb (cr_XmlParserWarningType type, char *msg, void *cbdata, GError **err) |
gboolean | cr_write_to_file (GError **err, gchar *filename, const char *format,...) |
gboolean | cr_cp (const char *src, const char *dst, cr_CpFlags flags, const char *working_directory, GError **err) |
gboolean | cr_rm (const char *path, cr_RmFlags flags, const char *working_dir, GError **err) |
gchar * | cr_append_pid_and_datetime (const char *str, const char *suffix) |
gboolean | cr_spawn_check_exit_status (gint exit_status, GError **error) |
cr_NEVR * | cr_str_to_nevr (const char *str) |
void | cr_nevr_free (cr_NEVR *nevr) |
cr_NEVRA * | cr_str_to_nevra (const char *str) |
void | cr_nevra_free (cr_NEVRA *nevra) |
gboolean | cr_identical_files (const gchar *fn1, const gchar *fn2, gboolean *identical, GError **err) |
gchar * | cr_cut_dirs (gchar *path, gint cut_dirs) |
#define cr_cmp_nevra | ( | A, | |
B | |||
) |
Compare evr of two cr_NEVRA. Name and arch are ignored.
#define cr_compress_file | ( | SRC, | |
DST, | |||
COMTYPE, | |||
ERR | |||
) | cr_compress_file_with_stat(SRC, DST, COMTYPE, NULL, ERR) |
#define cr_decompress_file | ( | SRC, | |
DST, | |||
COMTYPE, | |||
ERR | |||
) | cr_decompress_file_with_stat(SRC, DST, COMTYPE, NULL, ERR) |
Decompress file.
SRC | source filename |
DST | destination (If dst is dir, filename of src without compression suffix (if present) is used. If dst is NULL, src without compression suffix is used) Otherwise ".decompressed" suffix is used |
COMTYPE | type of compression |
ERR | GError ** |
#define CR_STATICSTRLEN | ( | s | ) | (sizeof(s)/sizeof(s[0])) |
enum cr_CpFlags |
enum cr_RmFlags |
gchar* cr_append_pid_and_datetime | ( | const char * | str, |
const char * | suffix | ||
) |
Append "YYYYmmddHHMMSS.MICROSECONDS.PID" suffix to the str.
str | String or NULL |
suffix | Another string that will be appended or NULL |
return | Newly allocated string |
gboolean cr_better_copy_file | ( | const char * | src, |
const char * | dst, | ||
GError ** | err | ||
) |
int cr_cmp_evr | ( | const char * | e1, |
const char * | v1, | ||
const char * | r1, | ||
const char * | e2, | ||
const char * | v2, | ||
const char * | r2 | ||
) |
Compare two version strings splited into evr chunks.
e1 | 1. epoch |
v1 | 1. version |
r1 | 1. release |
e2 | 2. epoch |
v2 | 2. version |
r2 | 2. release |
int cr_cmp_version_str | ( | const char * | str1, |
const char * | str2 | ||
) |
Compare two version string.
str1 | first version string |
str2 | second version string |
int cr_compress_file_with_stat | ( | const char * | src, |
const char * | dst, | ||
cr_CompressionType | comtype, | ||
cr_ContentStat * | stat, | ||
GError ** | err | ||
) |
Compress file.
src | source filename |
dst | destination (If dst is dir, filename of src + compression suffix is used. If dst is NULL, src + compression suffix is used) |
comtype | type of compression |
stat | pointer to cr_ContentStat or NULL |
err | GError ** |
gboolean cr_copy_file | ( | const char * | src, |
const char * | dst, | ||
GError ** | err | ||
) |
Copy file.
src | source filename |
dst | destination (if dst is dir, filename of src is used) |
err | GError ** |
gboolean cr_cp | ( | const char * | src, |
const char * | dst, | ||
cr_CpFlags | flags, | ||
const char * | working_directory, | ||
GError ** | err | ||
) |
Recursive copy of directory (works on files as well)
src | Source (supports wildcards) |
dst | Destination (supports wildcards) |
flags | Flags |
working_dir | Working directory |
err | GError ** |
gchar* cr_cut_dirs | ( | gchar * | path, |
gint | cut_dirs | ||
) |
Cut first N components of path. Note: Basename is never cut out.
int cr_decompress_file_with_stat | ( | const char * | src, |
const char * | dst, | ||
cr_CompressionType | comtype, | ||
cr_ContentStat * | stat, | ||
GError ** | err | ||
) |
Decompress file.
src | source filename |
dst | destination (If dst is dir, filename of src without compression suffix (if present) is used. If dst is NULL, src without compression suffix is used) Otherwise ".decompressed" suffix is used |
comtype | type of compression |
stat | pointer to cr_ContentStat or NULL |
err | GError ** |
int cr_download | ( | CURL * | handle, |
const char * | url, | ||
const char * | destination, | ||
GError ** | err | ||
) |
Download a file from the URL into the in_dst via curl handle.
handle | CURL handle |
url | source url |
destination | destination (if destination is dir, filename from the url is used) |
err | GError ** |
void cr_evr_free | ( | cr_EVR * | evr | ) |
const char* cr_flag_to_str | ( | gint64 | flags | ) |
Convert flags from RPM header to a string representation.
flags | flags |
char* cr_get_filename | ( | const char * | filepath | ) |
Return pointer to the rest of string after last '/'. (e.g. for "/foo/bar" returns "bar")
filepath | path |
struct cr_HeaderRangeStruct cr_get_header_byte_range | ( | const char * | filename, |
GError ** | err | ||
) |
Return header byte range.
filename | filename |
err | GError ** |
gboolean cr_identical_files | ( | const gchar * | fn1, |
const gchar * | fn2, | ||
gboolean * | identical, | ||
GError ** | err | ||
) |
Are the files identical? Different paths could point to the same file. This functions checks if both paths point to the same file or not. If one of the files doesn't exists, the funcion doesn't fail and just put FALSE into "indentical" value and returns.
fn1 | First path |
fn2 | Second path |
identical | Are the files same or not |
err | GError ** |
void cr_log_fn | ( | const gchar * | log_domain, |
GLogLevelFlags | log_level, | ||
const gchar * | message, | ||
gpointer | user_data | ||
) |
Createrepo_c library standard logging function.
log_domain | logging domain |
log_level | logging level |
message | message |
user_data | user data |
char* cr_normalize_dir_path | ( | const char * | path | ) |
Normalize path (Path with exactly one trailing '/').
path | path |
void cr_null_log_fn | ( | const gchar * | log_domain, |
GLogLevelFlags | log_level, | ||
const gchar * | message, | ||
gpointer | user_data | ||
) |
Logging function with no output.
log_domain | logging domain |
log_level | logging level |
message | message |
user_data | user data |
void cr_queue_free_full | ( | GQueue * | queue, |
GDestroyNotify | free_f | ||
) |
Convenience method, which frees all the memory used by a GQueue, and calls the specified destroy function on every element's data. This is the same function as g_queue_free_full(). The original function is implemented in glib since 2.32 but we need to support the older glib too.
queue | a pointer to a GQueue |
the | function to be called to free each element's data |
int cr_remove_dir | ( | const char * | path, |
GError ** | err | ||
) |
Recursively remove directory.
path | filepath |
err | GError ** |
gboolean cr_rm | ( | const char * | path, |
cr_RmFlags | flags, | ||
const char * | working_dir, | ||
GError ** | err | ||
) |
Wrapper over rm command
path | Path (supports wildcards) |
flags | Flags |
working_dir | Working directory |
err | GError ** |
void cr_slist_free_full | ( | GSList * | list, |
GDestroyNotify | free_f | ||
) |
Frees all the memory used by a GSList, and calls the specified destroy function on every element's data. This is the same function as g_slist_free_full(). The original function is implemented in glib since 2.28 but we need to support the older glib too.
list | pointer to GSList |
free_f | the function to be called to free each element's data |
gboolean cr_spawn_check_exit_status | ( | gint | exit_status, |
GError ** | error | ||
) |
Createrepo_c's reimplementation of convinient g_spawn_check_exit_status() function which is available since glib 2.34 (createrepo_c is currently compatible with glib >= 2.28)
exit_status | An exit code as returned from g_spawn_sync() |
error | GError ** |
cr_NEVRA* cr_split_rpm_filename | ( | const char * | filename | ) |
Split filename into the NEVRA. Supported formats: [path/]N-V-R:E.A[.rpm] [path/]E:N-V-R.A[.rpm] [path/]N-E:V-R.A[.rpm] [path/]N-V-R.A[.rpm]:E
filename | filename |
cr_EVR* cr_str_to_evr | ( | const char * | string, |
GStringChunk * | chunk | ||
) |
Convert epoch-version-release string into cr_EVR structure. If no GStringChunk passed, all non NULL items in returned structure are malloced and in that case, you have to free all non-NULL element yourself.
string | NULL terminated n-v-r string |
chunk | string chunk for strings (optional - could be NULL) |
cr_NEVR* cr_str_to_nevr | ( | const char * | str | ) |
Parse E:N-V-R or N-V-R:E or N-E:V-R string
str | NEVR string |
cr_NEVRA* cr_str_to_nevra | ( | const char * | str | ) |
Parse E:N-V-R.A, N-V-R:E.A, N-E:V-R.A or N-V-R.A:E string.
str | NEVRA string |
struct cr_Version cr_str_to_version | ( | const char * | str | ) |
int cr_warning_cb | ( | cr_XmlParserWarningType | type, |
char * | msg, | ||
void * | cbdata, | ||
GError ** | err | ||
) |
Warning callback for xml parser warnings. For use in xml parsers like primary, filelists, other or repomd parser. Name of the parser should be passed as a string via warning callback data (warningcb_data) argument of the parser.
gboolean cr_write_to_file | ( | GError ** | err, |
gchar * | filename, | ||
const char * | format, | ||
... | |||
) |
Open file and write content.
err | GError ** |
filename | Filename |
format | Format string |
... | Arguments |