summaryrefslogtreecommitdiff
path: root/rpmio/tglob.c
diff options
context:
space:
mode:
Diffstat (limited to 'rpmio/tglob.c')
-rw-r--r--rpmio/tglob.c84
1 files changed, 84 insertions, 0 deletions
diff --git a/rpmio/tglob.c b/rpmio/tglob.c
new file mode 100644
index 000000000..2dabc1f5c
--- /dev/null
+++ b/rpmio/tglob.c
@@ -0,0 +1,84 @@
+#include "system.h"
+
+#include <rpmio_internal.h>
+#include <rpmmacro.h>
+#include <rpmmessages.h>
+#include <popt.h>
+
+#include "debug.h"
+
+static int _debug = 0;
+
+/*@unchecked@*/
+extern int _ftp_debug;
+/*@unchecked@*/
+extern int _rpmio_debug;
+
+#define FTPPATH "ftp://porkchop/mnt/redhat/beehive/comps/dist/[78]*/rpm*"
+#define DIRPATH "/mnt/redhat/beehive/comps/dist/[78]*/rpm*"
+static char * dirpath = DIRPATH;
+static char * ftppath = FTPPATH;
+
+static int Glob_error(const char *epath, int eerrno)
+{
+fprintf(stderr, "*** glob_error(%p,%d) path %s\n", epath, eerrno, epath);
+ return 1;
+}
+
+static void printGlob(const char * path)
+{
+ glob_t gl;
+ int rc;
+ int i;
+
+fprintf(stderr, "===== %s\n", path);
+ gl.gl_pathc = 0;
+ gl.gl_pathv = NULL;
+ gl.gl_offs = 0;
+ rc = Glob(path, 0, Glob_error, &gl);
+fprintf(stderr, "*** Glob rc %d\n", rc);
+ if (rc == 0)
+ for (i = 0; i < gl.gl_pathc; i++)
+ fprintf(stderr, "%5d %s\n", i, gl.gl_pathv[i]);
+ Globfree(&gl);
+}
+
+static struct poptOption optionsTable[] = {
+ { "debug", 'd', POPT_ARG_VAL, &_debug, -1, NULL, NULL },
+ { "ftpdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_ftp_debug, -1,
+ N_("debug protocol data stream"), NULL},
+ { "rpmiodebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmio_debug, -1,
+ N_("debug rpmio I/O"), NULL},
+ { "urldebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_url_debug, -1,
+ N_("debug URL cache handling"), NULL},
+ { "verbose", 'v', 0, 0, 'v', NULL, NULL },
+ POPT_AUTOHELP
+ POPT_TABLEEND
+};
+
+int
+main(int argc, const char *argv[])
+{
+ poptContext optCon = poptGetContext(argv[0], argc, argv, optionsTable, 0);
+ int rc;
+
+ while ((rc = poptGetNextOpt(optCon)) > 0) {
+ switch (rc) {
+ case 'v':
+ rpmIncreaseVerbosity();
+ /*@switchbreak@*/ break;
+ default:
+ /*@switchbreak@*/ break;
+ }
+ }
+
+ if (_debug) {
+ rpmIncreaseVerbosity();
+ rpmIncreaseVerbosity();
+ }
+
+ printGlob(dirpath);
+ printGlob(ftppath);
+
+ return 0;
+}