Permalink
Browse files

appdata2solv: add support for -d and -r options

  • Loading branch information...
1 parent 673b103 commit 2a338a1b264d3043e715b4f1838c075753ce2fdb @mlschroe mlschroe committed Feb 26, 2014
Showing with 40 additions and 4 deletions.
  1. +40 −4 tools/appdata2solv.c
View
44 tools/appdata2solv.c
@@ -20,6 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include "pool.h"
#include "repo.h"
@@ -30,11 +31,46 @@ int
main(int argc, char **argv)
{
Pool *pool = pool_create();
- Repo *repo = repo_create(pool, "<stdin>");
- if (repo_add_appdata(repo, stdin, 0))
+ Repo *repo;
+ int c;
+ const char *appdatadir = 0;
+ const char *root = 0;
+
+ while ((c = getopt(argc, argv, "hd:r:")) >= 0)
+ {
+ switch (c)
+ {
+ case 'd':
+ appdatadir = optarg;
+ break;
+ case 'r':
+ root = optarg;
+ break;
+ default:
+ fprintf(stderr, "usage: appdata2solv [-d appdatadir]");
+ exit(c == 'h' ? 0 : 1);
+ }
+ }
+
+ if (root)
+ pool_set_rootdir(pool, root);
+
+ repo = repo_create(pool, "<stdin>");
+ if (!appdatadir)
+ {
+ if (repo_add_appdata(repo, stdin, 0))
+ {
+ fprintf(stderr, "appdata2solv: %s\n", pool_errstr(pool));
+ exit(1);
+ }
+ }
+ else
{
- fprintf(stderr, "appdata2solv: %s\n", pool_errstr(pool));
- exit(1);
+ if (repo_add_appdata_dir(repo, appdatadir, REPO_USE_ROOTDIR))
+ {
+ fprintf(stderr, "appdata2solv: %s\n", pool_errstr(pool));
+ exit(1);
+ }
}
tool_write(repo, 0, 0);
pool_free(pool);

0 comments on commit 2a338a1

Please sign in to comment.