createrepo_c library
0.7.5
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_UNUSED(x) (void)(x) |
#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) |
int | 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) |
int | 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) |
#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])) |
#define CR_UNUSED | ( | x | ) | (void)(x) |
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 |
int 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 ** |
int 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 ** |
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 ** |
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 |