[Yum-devel] [PATCH 3/5] Add delta metadata parsing test program
James Bowes
jbowes at redhat.com
Mon Jun 11 12:16:33 UTC 2007
usage: delta-parser TYPE FILENAME
delta-parser is a simple test program to output the additions and
removals in a delta xml file.
---
Makefile | 5 +++++
delta-parser.c | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 0 deletions(-)
create mode 100644 Makefile
create mode 100644 delta-parser.c
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..dc6e16d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,5 @@
+delta-parser: delta-parser.c xml-parser.c package.c
+ gcc -g -Wall -o delta-parser `pkg-config --cflags --libs libxml-2.0 glib-2.0` delta-parser.c xml-parser.c package.c
+
+clean:
+ rm delta-parser
diff --git a/delta-parser.c b/delta-parser.c
new file mode 100644
index 0000000..52dafbf
--- /dev/null
+++ b/delta-parser.c
@@ -0,0 +1,41 @@
+#include <stdio.h>
+#include <string.h>
+
+#include "xml-parser.h"
+#include "package.h"
+
+void count_callback (guint32 count, gpointer data)
+{
+ printf ("%d total packages\n", count);
+}
+
+void addition_callback (Package *pkg, gpointer data)
+{
+ printf ("add - %s\t%s\t%s\n", pkg->name, pkg->pkgId, pkg->arch);
+}
+
+void removal_callback (Package *pkg, gpointer data)
+{
+ printf ("remove - %s\t%s\t%s\n", pkg->name, pkg->pkgId, pkg->arch);
+}
+
+int main(int argc, char* argv[])
+{
+ GError *err = NULL;
+
+ if (argc < 3) {
+ printf ("usage: %s TYPE FILE\n", argv[0]);
+ return -1;
+ }
+
+ if (!strcmp ("primary", argv[1]))
+ yum_xml_parse_primary_delta (argv[2], count_callback,
+ addition_callback, removal_callback,
+ NULL, &err);
+ else {
+ printf ("unknown metadata type '%s'\n", argv[1]);
+ return -1;
+ }
+
+ return 0;
+}
--
1.5.2.1.938.gac3b4
More information about the Yum-devel
mailing list