mirror of
https://github.com/pygos/pkg-utils.git
synced 2024-11-22 12:59:46 +01:00
pack: deduce package name from input file name
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
This commit is contained in:
parent
55b2d2f0c0
commit
00c8946497
1 changed files with 14 additions and 19 deletions
|
@ -40,24 +40,6 @@ static int handle_requires(input_file_t *f, void *obj)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int handle_name(input_file_t *f, void *obj)
|
|
||||||
{
|
|
||||||
pkg_desc_t *desc = obj;
|
|
||||||
|
|
||||||
if (desc->name != NULL) {
|
|
||||||
input_file_complain(f, "name redefined");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
desc->name = strdup(f->line);
|
|
||||||
if (desc->name == NULL) {
|
|
||||||
input_file_complain(f, "out of memory");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int handle_toc_compressor(input_file_t *f, void *obj)
|
static int handle_toc_compressor(input_file_t *f, void *obj)
|
||||||
{
|
{
|
||||||
pkg_desc_t *desc = obj;
|
pkg_desc_t *desc = obj;
|
||||||
|
@ -90,7 +72,6 @@ static const keyword_handler_t line_hooks[] = {
|
||||||
{ "toc-compressor", handle_toc_compressor },
|
{ "toc-compressor", handle_toc_compressor },
|
||||||
{ "data-compressor", handle_data_compressor },
|
{ "data-compressor", handle_data_compressor },
|
||||||
{ "requires", handle_requires },
|
{ "requires", handle_requires },
|
||||||
{ "name", handle_name },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_LINE_HOOKS (sizeof(line_hooks) / sizeof(line_hooks[0]))
|
#define NUM_LINE_HOOKS (sizeof(line_hooks) / sizeof(line_hooks[0]))
|
||||||
|
@ -117,6 +98,7 @@ static compressor_t *get_default_compressor(void)
|
||||||
int desc_read(const char *path, pkg_desc_t *desc)
|
int desc_read(const char *path, pkg_desc_t *desc)
|
||||||
{
|
{
|
||||||
input_file_t f;
|
input_file_t f;
|
||||||
|
char *ptr;
|
||||||
|
|
||||||
memset(desc, 0, sizeof(*desc));
|
memset(desc, 0, sizeof(*desc));
|
||||||
|
|
||||||
|
@ -142,6 +124,19 @@ int desc_read(const char *path, pkg_desc_t *desc)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ptr = strrchr(path, '/');
|
||||||
|
|
||||||
|
desc->name = strdup((ptr == NULL) ? path : (ptr + 1));
|
||||||
|
if (desc->name == NULL) {
|
||||||
|
fputs("out of memory\n", stderr);
|
||||||
|
desc_free(desc);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ptr = strrchr(desc->name, '.');
|
||||||
|
if (ptr != NULL)
|
||||||
|
*ptr = '\0';
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue