]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
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 987bf237716502173e47abbd9256af8a92f442df..d9f944a241f59451aac0d3db5dec18dcc11eeb91 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 1e7da8304ec6fa76ab18aeb4d29bc17429ea999a..bcf031877f933e7555f17862a8276d40913ddd25 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 1078134ed4ee2130dc7b07daa51721bc24f62703..614f50adcfa55c253c50d4fe93804218779f7f19 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 ac29013cd540d2500091cc670f50ebf98732e729..d2589277c67a64992e8acc0b3a570a5f16800df2 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 f2852ade44dd40d38aaac64a708f916a3fbeba3f..fe88af5ef9f97e09c75667a95b1bf19d375b659f 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 dc2b86cc3d1e8111f9b95744528334f1813be469..96dcd66a5906ad7079a241de6dfdc803e08be436 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 eee17ee48ef709421c3fadf0d4357e63acfc9099..a4a1280711eacff07e277e5e13dc26fc1f0e826b 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);