add help to rpmmd2solv and patchxml2solv
authorKlaus Kaempf <kkaempf@suse.de>
Fri, 15 Feb 2008 16:31:01 +0000 (16:31 +0000)
committerKlaus Kaempf <kkaempf@suse.de>
Fri, 15 Feb 2008 16:31:01 +0000 (16:31 +0000)
prepare all tools and scripts for command line switches

tools/patchxml2solv.c
tools/repo2solv.sh
tools/repo_patchxml.c
tools/repo_patchxml.h
tools/repo_rpmmd.c
tools/repo_rpmmd.h
tools/rpmmd2solv.c

index 987bf23..d9f944a 100644 (file)
 #include "repo_patchxml.h"
 #include "common_write.h"
 
+static void
+usage(const char *err)
+{
+  if (err)
+    fprintf(stderr, "\n** Error:\n  %s\n", err);
+  fprintf(stderr, "\nUsage:\n"
+          "patchxml2solv [-a][-h][-k][-n <attrname>]\n"
+         "  reads a 'patchxml' file from <stdin> and writes a .solv file to <stdout>\n"
+         "  -h : print help & exit\n"
+         "  -k : don't mix kinds (experimental!)\n"
+         "  -n <name>: save attributes as <name>.attr\n"
+        );
+   exit(0);
+}
+
 int
 main(int argc, char **argv)
 {
+  int flags = 0;
+  char *attrname = 0;
+  
   Pool *pool = pool_create();
   Repo *repo = repo_create(pool, "<stdin>");
-  repo_add_patchxml(repo, stdin);
+
+  argv++;
+  argc--;
+  while (argc--)
+    {
+      const char *s = argv[0];
+      if (*s++ == '-')
+        while (*s)
+          switch (*s++)
+           {
+             case 'h': usage(NULL); break;
+             case 'n':
+               if (argc)
+                 {
+                   attrname = argv[1];
+                   argv++;
+                   argc--;
+                 }
+               else
+                 usage("argument required for '-n'");
+               break;
+             case 'k':
+               flags |= PATCHXML_KINDS_SEPARATELY;
+             break;
+             default : break;
+           }
+      argv++;
+    }
+
+  repo_add_patchxml(repo, stdin, flags);
   tool_write(repo, 0, 0);
   pool_free(pool);
   exit(0);
index 1e7da83..bcf0318 100755 (executable)
@@ -25,7 +25,7 @@ if test -d repodata; then
   if test -n "$cmd"; then
     # we have some primary.xml*
     primfile=`mktemp` || exit 3
-    $cmd $i | rpmmd2solv > $primfile
+    $cmd $i | rpmmd2solv $(PARSER_OPTIONS) > $primfile
   fi
 
   patchfile="/nonexist"
@@ -41,7 +41,7 @@ if test -d repodata; then
        esac
      done
      echo '</patches>'
-    ) | grep -v '\?xml' | patchxml2solv > $patchfile
+    ) | grep -v '\?xml' | patchxml2solv $(PARSER_OPTIONS) > $patchfile
   fi
 
   # Now merge primary and patches
@@ -89,6 +89,6 @@ elif test -d suse/setup/descr && test -s content; then
        esac
       done
     fi
-  ) | susetags2solv -c "${olddir}/content"
+  ) | susetags2solv -c "${olddir}/content" $(PARSER_OPTIONS)
   cd "$olddir"
 fi
index 1078134..614f50a 100644 (file)
@@ -613,7 +613,7 @@ characterData(void *userData, const XML_Char *s, int len)
 #define BUFF_SIZE 8192
 
 void
-repo_add_patchxml(Repo *repo, FILE *fp)
+repo_add_patchxml(Repo *repo, FILE *fp, int flags)
 {
   Pool *pool = repo->pool;
   struct parsedata pd;
index ac29013..d258927 100644 (file)
@@ -5,4 +5,6 @@
  * for further information
  */
 
-extern void repo_add_patchxml(Repo *repo, FILE *fp);
+#define PATCHXML_KINDS_SEPARATELY 1
+
+extern void repo_add_patchxml(Repo *repo, FILE *fp, int flags);
index f2852ad..fe88af5 100644 (file)
@@ -742,7 +742,7 @@ characterData(void *userData, const XML_Char *s, int len)
 #define BUFF_SIZE 8192
 
 void
-repo_add_rpmmd(Repo *repo, FILE *fp)
+repo_add_rpmmd(Repo *repo, FILE *fp, int flags)
 {
   Pool *pool = repo->pool;
   struct parsedata pd;
index dc2b86c..96dcd66 100644 (file)
@@ -5,4 +5,6 @@
  * for further information
  */
 
-extern void repo_add_rpmmd(Repo *repo, FILE *fp);
+#define RPMMD_KINDS_SEPARATELY 1
+
+extern void repo_add_rpmmd(Repo *repo, FILE *fp, int flags);
index eee17ee..a4a1280 100644 (file)
 #include "repo_rpmmd.h"
 #include "common_write.h"
 
+static void
+usage(const char *err)
+{
+  if (err)
+    fprintf(stderr, "\n** Error:\n  %s\n", err);
+  fprintf(stderr, "\nUsage:\n"
+          "rpmmd2solv [-a][-h][-k][-n <attrname>]\n"
+         "  reads a 'rpmmd' repository from <stdin> and writes a .solv file to <stdout>\n"
+         "  -h : print help & exit\n"
+         "  -k : don't mix kinds (experimental!)\n"
+         "  -n <name>: save attributes as <name>.attr\n"
+        );
+   exit(0);
+}
+
+
 int
 main(int argc, char **argv)
 {
+  int flags = 0;
+  char *attrname = 0;
+  
   Pool *pool = pool_create();
   Repo *repo = repo_create(pool, "<stdin>");
-  repo_add_rpmmd(repo, stdin);
+
+  argv++;
+  argc--;
+  while (argc--)
+    {
+      const char *s = argv[0];
+      if (*s++ == '-')
+        while (*s)
+          switch (*s++)
+           {
+             case 'h': usage(NULL); break;
+             case 'n':
+               if (argc)
+                 {
+                   attrname = argv[1];
+                   argv++;
+                   argc--;
+                 }
+               else
+                 usage("argument required for '-n'");
+               break;
+             case 'k':
+               flags |= RPMMD_KINDS_SEPARATELY;
+             break;
+             default : break;
+           }
+      argv++;
+    }
+  repo_add_rpmmd(repo, stdin, flags);
   tool_write(repo, 0, 0);
   pool_free(pool);
   exit(0);