summaryrefslogtreecommitdiff
path: root/lib/tre.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tre.c')
-rw-r--r--lib/tre.c142
1 files changed, 0 insertions, 142 deletions
diff --git a/lib/tre.c b/lib/tre.c
deleted file mode 100644
index eda4181b5..000000000
--- a/lib/tre.c
+++ /dev/null
@@ -1,142 +0,0 @@
-#include "system.h"
-
-#define _RPMSX_INTERNAL
-#include <rpmsx.h>
-#include <popt.h>
-
-#include "debug.h"
-
-static int add_assoc = 1;
-
-/*
- * Command-line options.
- */
-static int change = 1;
-static int quiet = 0;
-#define QPRINTF(args...) do { if (!quiet) printf(args); } while (0)
-static int use_stdin = 0;
-static int verbose = 0;
-static int warn_no_match = 0;
-static char *rootpath = NULL;
-static int rootpathlen = 0;
-
-static struct poptOption optionsTable[] = {
- { "debug", 'd', POPT_ARG_VAL, &_rpmsx_debug, -1,
- N_("show what specification matched each file"), NULL },
- { "nochange", 'n', POPT_ARG_VAL, &change, 0,
- N_("do not change any file labels"), NULL },
- { "quiet", 'q', POPT_ARG_VAL, &quiet, 1,
- N_("be quiet (suppress non-error output)"), NULL },
- { "root", 'r', POPT_ARG_STRING|POPT_ARGFLAG_SHOW_DEFAULT, &rootpath, 0,
- N_("use an alternate root path"), N_("ROOT") },
- { "stdin", 's', POPT_ARG_VAL, &use_stdin, 1,
- N_("use stdin for a list of files instead of searching a partition"), NULL },
- { "verbose", 'v', POPT_ARG_VAL, &warn_no_match, 1,
- N_("show changes in file labels"), NULL },
- { "warn", 'W', POPT_ARG_VAL, &warn_no_match, 1,
- N_("warn about entries that have no matching file"), NULL },
-
- POPT_AUTOHELP
- POPT_TABLEEND
-};
-
-int main(int argc, char **argv)
-{
- poptContext optCon;
- const char ** av;
- const char * arg;
- rpmsx sx;
- int ec = EXIT_FAILURE; /* assume failure. */
- int rc;
- int i;
-
-#if HAVE_MCHECK_H && HAVE_MTRACE
- /*@-noeffect@*/
- mtrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */
- /*@=noeffect@*/
-#endif
-
- setprogname(argv[0]); /* Retrofit glibc __progname */
- /* XXX glibc churn sanity */
- if (__progname == NULL) {
- if ((__progname = strrchr(argv[0], '/')) != NULL) __progname++;
- else __progname = argv[0];
- }
-
- (void) setlocale(LC_ALL, "" );
- (void) bindtextdomain(PACKAGE, LOCALEDIR);
- (void) textdomain(PACKAGE);
-
- optCon = poptGetContext(__progname, argc, (const char **)argv, optionsTable, 0);
-
- /* Process all options, whine if unknown. */
- while ((rc = poptGetNextOpt(optCon)) > 0) {
- switch (rc) {
- default:
-/*@-nullpass@*/
- fprintf(stderr, _("%s: option table misconfigured (%d)\n"),
- __progname, rc);
-/*@=nullpass@*/
- goto exit;
- /*@notreached@*/ /*@switchbreak@*/ break;
- }
- }
-
- if (rc < -1) {
-/*@-nullpass@*/
- fprintf(stderr, "%s: %s: %s\n", __progname,
- poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
- poptStrerror(rc));
-/*@=nullpass@*/
- goto exit;
- }
-
- /* trim trailing /, if present */
- if (rootpath != NULL) {
- rootpathlen = strlen(rootpath);
- while (rootpath[rootpathlen - 1] == '/')
- rootpath[--rootpathlen] = 0;
- }
-
- av = poptGetArgs(optCon);
-
- /* Parse the specification file. */
- sx = rpmsxNew(NULL);
-
- if (_rpmsx_debug) {
- sx = rpmsxInit(sx, 1);
- if (sx != NULL)
- while ((i = rpmsxNext(sx)) >= 0) {
- const char * pattern = rpmsxPattern(sx);
- const char * type = rpmsxType(sx);
- const char * context = rpmsxContext(sx);
-
- fprintf(stderr, "%5d: %s\t%s\t%s\n", i,
- pattern, (type ? type : ""), context);
- }
- }
-
- if (av != NULL)
- while ((arg = *av++) != NULL) {
- const char * context = rpmsxFContext(sx, arg, S_IFREG);
- fprintf(stderr, "%s: %s\n", arg, context);
- }
-
- sx = rpmsxFree(sx);
-
- /*
- * Apply the specifications to the file systems.
- */
- ec = 0;
-
-exit:
- optCon = poptFreeContext(optCon);
-
-#if HAVE_MCHECK_H && HAVE_MTRACE
- /*@-noeffect@*/
- muntrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */
- /*@=noeffect@*/
-#endif
-
- return ec;
-}