diff options
Diffstat (limited to 'tools/rpmmd2solv.c')
-rw-r--r-- | tools/rpmmd2solv.c | 99 |
1 files changed, 8 insertions, 91 deletions
diff --git a/tools/rpmmd2solv.c b/tools/rpmmd2solv.c index 437c83d..ad75025 100644 --- a/tools/rpmmd2solv.c +++ b/tools/rpmmd2solv.c @@ -27,11 +27,9 @@ static void usage(int status) { fprintf(stderr, "\nUsage:\n" - "rpmmd2solv [-a][-h][-n <attrname>][-l <locale>]\n" + "rpmmd2solv [-h]\n" " reads 'primary' from a 'rpmmd' repository from <stdin> and writes a .solv file to <stdout>\n" " -h : print help & exit\n" - " -n <name>: save attributes as <name>.attr\n" - " -l <locale>: parse localization data for <locale>\n" ); exit(status); } @@ -39,11 +37,7 @@ usage(int status) int main(int argc, char **argv) { - int c, flags = 0; - const char *attrname = 0; - const char *basefile = 0; - const char *dir = 0; - const char *locale = 0; + int c; #ifdef SUSE int add_auto = 0; #endif @@ -51,25 +45,13 @@ main(int argc, char **argv) Pool *pool = pool_create(); Repo *repo = repo_create(pool, "<stdin>"); - while ((c = getopt (argc, argv, "hn:b:d:l:X")) >= 0) + while ((c = getopt (argc, argv, "hX")) >= 0) { - switch(c) + switch (c) { case 'h': usage(0); break; - case 'n': - attrname = optarg; - break; - case 'b': - basefile = optarg; - break; - case 'd': - dir = optarg; - break; - case 'l': - locale = optarg; - break; case 'X': #ifdef SUSE add_auto = 1; @@ -80,81 +62,16 @@ main(int argc, char **argv) break; } } - if (dir) - { - FILE *fp; - int l; - char *fnp; - l = strlen(dir) + 128; - fnp = solv_malloc(l+1); - snprintf(fnp, l, "%s/primary.xml.gz", dir); - if (!(fp = solv_xfopen(fnp, 0))) - { - perror(fnp); - exit(1); - } - if (repo_add_rpmmd(repo, fp, 0, flags)) - { - fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool)); - exit(1); - } - fclose(fp); - snprintf(fnp, l, "%s/diskusagedata.xml.gz", dir); - if ((fp = solv_xfopen(fnp, 0))) - { - if (repo_add_rpmmd(repo, fp, 0, flags)) - { - fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool)); - exit(1); - } - fclose(fp); - } - if (locale) - { - if (snprintf(fnp, l, "%s/translation-%s.xml.gz", dir, locale) >= l) - { - fprintf(stderr, "-l parameter too long\n"); - exit(1); - } - while (!(fp = solv_xfopen(fnp, 0))) - { - fprintf(stderr, "not opened %s\n", fnp); - if (strlen(locale) > 2) - { - if (snprintf(fnp, l, "%s/translation-%.2s.xml.gz", dir, locale) >= l) - { - fprintf(stderr, "-l parameter too long\n"); - exit(1); - } - if ((fp = solv_xfopen(fnp, 0))) - break; - } - perror(fnp); - exit(1); - } - fprintf(stderr, "opened %s\n", fnp); - if (repo_add_rpmmd(repo, fp, 0, flags)) - { - fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool)); - exit(1); - } - fclose(fp); - } - solv_free(fnp); - } - else + if (repo_add_rpmmd(repo, stdin, 0, 0)) { - if (repo_add_rpmmd(repo, stdin, 0, flags)) - { - fprintf(stderr, "rpmmd2solv: %s\n", pool_errstr(pool)); - exit(1); - } + fprintf(stderr, "rpmmd2solv: %s\n", pool_errstr(pool)); + exit(1); } #ifdef SUSE if (add_auto) repo_add_autopattern(repo, 0); #endif - tool_write(repo, basefile, attrname); + tool_write(repo, stdout); pool_free(pool); exit(0); } |