X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tools%2Fdeb2solv.c;h=4fac3f03f7a8e82531615caa02dfc186cc1b707e;hb=18ebbaf4f619e79231f5ad18a2ab8c135d22ef56;hp=0d22f244aa27e9ec1a3d4b235072e5c4a8c9aa9d;hpb=a1052e73b2d754fc754294a25ac0bbd5ba35c1a3;p=platform%2Fupstream%2Flibsolv.git diff --git a/tools/deb2solv.c b/tools/deb2solv.c index 0d22f24..4fac3f0 100644 --- a/tools/deb2solv.c +++ b/tools/deb2solv.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "util.h" #include "pool.h" @@ -57,18 +58,18 @@ main(int argc, char **argv) Repo *repo; FILE *fp; char buf[4096], *p; - const char *basefile = 0; + int is_repo = 0; - while ((c = getopt(argc, argv, "0b:m:")) >= 0) + while ((c = getopt(argc, argv, "0:m:r")) >= 0) { switch(c) { - case 'b': - basefile = optarg; - break; case 'm': manifest = optarg; break; + case 'r': + is_repo = 1; + break; case '0': manifest0 = 1; break; @@ -113,8 +114,32 @@ main(int argc, char **argv) repo = repo_create(pool, "deb2solv"); repo_add_repodata(repo, 0); res = 0; + if (!ndebs && !manifest && is_repo) + { + if (repo_add_debpackages(repo, stdin, REPO_REUSE_REPODATA|REPO_NO_INTERNALIZE)) + { + fprintf(stderr, "deb2solv: %s\n", pool_errstr(pool)); + res = 1; + } + } for (i = 0; i < ndebs; i++) { + if (is_repo) + { + if ((fp = fopen(debs[i], "r")) == 0) + { + perror(debs[i]); + res = 1; + continue; + } + if (repo_add_debpackages(repo, fp, REPO_REUSE_REPODATA|REPO_NO_INTERNALIZE)) + { + fprintf(stderr, "deb2solv: %s\n", pool_errstr(pool)); + res = 1; + } + fclose(fp); + continue; + } if (repo_add_deb(repo, debs[i], REPO_REUSE_REPODATA|REPO_NO_INTERNALIZE) == 0) { fprintf(stderr, "deb2solv: %s\n", pool_errstr(pool)); @@ -122,7 +147,7 @@ main(int argc, char **argv) } } repo_internalize(repo); - tool_write(repo, basefile, 0); + tool_write(repo, stdout); pool_free(pool); for (c = 0; c < ndebs; c++) free((char *)debs[c]);