Imported Upstream version 0.7.18
[platform/upstream/libsolv.git] / tools / mergesolv.c
index 653de47..a10c686 100644 (file)
 
 #include <sys/types.h>
 #include <unistd.h>
-#include <limits.h>
-#include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
+#include <getopt.h>
 
 #include "pool.h"
 #include "repo_solv.h"
+#ifdef SUSE
+#include "repo_autopattern.h"
+#endif
 #include "common_write.h"
 
 static void
@@ -49,7 +51,7 @@ loadcallback (Pool *pool, Repodata *data, void *vdata)
       perror(location);
       return 0;
     }
-  r = repo_add_solv_flags(data->repo, fp, REPO_USE_LOADING|REPO_LOCALPOOL);
+  r = repo_add_solv(data->repo, fp, REPO_USE_LOADING|REPO_LOCALPOOL);
   fclose(fp);
   return r ? 0 : 1;
 }
@@ -59,14 +61,16 @@ main(int argc, char **argv)
 {
   Pool *pool;
   Repo *repo;
-  const char *basefile = 0;
   int with_attr = 0;
+#ifdef SUSE
+  int add_auto = 0;
+#endif
   int c;
 
   pool = pool_create();
   repo = repo_create(pool, "<mergesolv>");
   
-  while ((c = getopt(argc, argv, "ahb:")) >= 0)
+  while ((c = getopt(argc, argv, "ahX")) >= 0)
     {
       switch (c)
       {
@@ -76,10 +80,13 @@ main(int argc, char **argv)
        case 'a':
          with_attr = 1;
          break;
-       case 'b':
-         basefile = optarg;
+       case 'X':
+#ifdef SUSE
+         add_auto = 1;
+#endif
          break;
        default:
+         usage();
          exit(1);
       }
     }
@@ -94,10 +101,18 @@ main(int argc, char **argv)
          perror(argv[optind]);
          exit(1);
        }
-      repo_add_solv(repo, fp);
+      if (repo_add_solv(repo, fp, 0))
+       {
+         fprintf(stderr, "repo %s: %s\n", argv[optind], pool_errstr(pool));
+         exit(1);
+       }
       fclose(fp);
     }
-  tool_write(repo, basefile, 0);
+#ifdef SUSE
+  if (add_auto)
+    repo_add_autopattern(repo, 0);
+#endif
+  tool_write(repo, stdout);
   pool_free(pool);
   return 0;
 }