- get rid of that horrible rpmdb2solv hack, it's not used any more
authorMichael Schroeder <mls@suse.de>
Wed, 19 Nov 2008 10:47:18 +0000 (10:47 +0000)
committerMichael Schroeder <mls@suse.de>
Wed, 19 Nov 2008 10:47:18 +0000 (10:47 +0000)
tools/repo_products.c
tools/repo_products.h
tools/rpmdb2solv.c

index def05bd..0576b64 100644 (file)
@@ -106,7 +106,6 @@ struct parsedata {
 
   struct stateswitch *swtab[NUMSTATES];
   enum state sbtab[NUMSTATES];
-  const char *attribute; /* only print this attribute, if currentproduct == baseproduct */
 
   const char *tmplang;
 
@@ -278,16 +277,6 @@ endElement(void *userData, const char *name)
       if (pd->currentproduct == pd->baseproduct)
        repodata_set_str(pd->data, pd->handle, PRODUCT_TYPE, "base");
 
-      // output distver if requested, only if the product is
-      // a base product
-      // this is yum $releasever variable
-      if (pd->currentproduct == pd->baseproduct
-         && pd->attribute
-         && !strcmp(pd->attribute, "releasever"))
-       {
-         printf("%s\n", pd->tmpvers);
-       }
-
       if (pd->tmprel)
        {
          if (pd->tmpvers)
@@ -346,22 +335,10 @@ endElement(void *userData, const char *name)
       break;
     case STATE_TARGET:
       repodata_set_str(pd->data, pd->handle, PRODUCT_REGISTER_TARGET, pd->content);
-      if (pd->currentproduct == pd->baseproduct
-         && pd->attribute
-         && !strcmp(pd->attribute, "register.target"))
-       {
-         printf("%s\n", pd->content);
-       }
-    break;
+      break;
     case STATE_REGRELEASE:
       repodata_set_str(pd->data, pd->handle, PRODUCT_REGISTER_RELEASE, pd->content);
-      if (pd->currentproduct == pd->baseproduct
-         && pd->attribute
-         && !strcmp(pd->attribute, "register.release"))
-       {
-         printf("%s\n", pd->content);
-       }
-    break;
+      break;
     case STATE_CPEID:
       if (pd->content)
         repodata_set_str(pd->data, pd->handle, SOLVABLE_CPE_ID, pd->content);
@@ -594,7 +571,7 @@ parse_dir(DIR *dir, const char *path, struct parsedata *pd, int code11)
 /* Oh joy! Three parsers for the price of one! */
 
 void
-repo_add_products(Repo *repo, const char *proddir, const char *root, const char *attribute, int flags)
+repo_add_products(Repo *repo, const char *proddir, const char *root, int flags)
 {
   const char *fullpath = proddir;
   DIR *dir;
@@ -616,8 +593,6 @@ repo_add_products(Repo *repo, const char *proddir, const char *root, const char
   pd.content = sat_malloc(256);
   pd.acontent = 256;
 
-  pd.attribute = attribute;
-
   for (i = 0, sw = stateswitches; sw->from != NUMSTATES; i++, sw++)
     {
       if (!pd.swtab[sw->from])
index e79c7f1..aa0c2d9 100644 (file)
@@ -5,4 +5,4 @@
  * for further information
  */
 
-void repo_add_products(Repo *repo, const char *proddir, const char *root, const char *attribute, int flags);
+void repo_add_products(Repo *repo, const char *proddir, const char *root, int flags);
index b559777..f4bea47 100644 (file)
@@ -34,7 +34,6 @@ usage(int status)
 {
   fprintf(stderr, "\nUsage:\n"
          "rpmdb2solv [-n] [-x] [-b <basefile>] [-p <productsdir>] [-r <root>]\n"
-         " -a <attr> : Only print this attribute, no .solv generation. E.g. '-a distribution.target'\n"
          " -n : No packages, do not read rpmdb, useful to only parse products\n"
          " -x : use extrapool\n"
          " -b <basefile> : Write .solv to <basefile>.solv instead of stdout\n"
@@ -52,30 +51,26 @@ main(int argc, char **argv)
   Pool *pool = pool_create();
   Repo *repo, *ref = 0;
   Repodata *data;
-  FILE *fp;
   Pool *refpool;
   int c, percent = 0;
   int extrapool = 0;
   int nopacks = 0;
   const char *root = 0;
   const char *basefile = 0;
+  const char *refname = 0;
   char *proddir = 0;
-  const char *attribute = 0;
   char *outfile = 0;
 
   /*
    * parse arguments
    */
   
-  while ((c = getopt(argc, argv, "Pa:hnxb:r:p:o:")) >= 0)
+  while ((c = getopt(argc, argv, "Phnxb:r:p:o:")) >= 0)
     switch (c)
       {
       case 'h':
          usage(0);
        break;
-      case 'a':
-       attribute = optarg;
-       break;
       case 'r':
         root = optarg;
         break;
@@ -108,24 +103,31 @@ main(int argc, char **argv)
     }
     
   /*
-   * ???
+   * optional arg is old version of rpmdb solv file
+   * should make this a real option instead
    */
   
   if (optind < argc)
+    refname = argv[optind];
+
+  if (refname)
     {
-      if (extrapool)
-       refpool = pool_create();
-      else
-        refpool = pool;
-      if ((fp = fopen(argv[optind], "r")) == NULL)
+      FILE *fp;
+      if ((fp = fopen(refname, "r")) == NULL)
         {
-          perror(argv[optind]);
-          exit(1);
+          perror(refname);
         }
-      ref = repo_create(refpool, "ref");
-      repo_add_solv(ref, fp);
-      repo_disable_paging(ref);
-      fclose(fp);
+      else
+       {
+         if (extrapool)
+           refpool = pool_create();
+         else
+           refpool = pool;
+         ref = repo_create(refpool, "ref");
+         repo_add_solv(ref, fp);
+         repo_disable_paging(ref);
+         fclose(fp);
+       }
     }
 
   /*
@@ -157,7 +159,7 @@ main(int argc, char **argv)
              strcpy(buf + rootlen, proddir);
            }
        }
-      repo_add_products(repo, proddir, root, attribute, REPO_REUSE_REPODATA | REPO_NO_INTERNALIZE);
+      repo_add_products(repo, proddir, root, REPO_REUSE_REPODATA | REPO_NO_INTERNALIZE);
       if (buf != proddir)
        sat_free(buf);
     }
@@ -173,10 +175,7 @@ main(int argc, char **argv)
       ref = 0;
     }
 
-  if (!attribute)
-    tool_write(repo, basefile, 0);
-
+  tool_write(repo, basefile, 0);
   pool_free(pool);
-
   exit(0);
 }