[pacman-dev] [PATCH] pactree: Add "--config" option
Lukas Fleischer
archlinux at cryptocrack.de
Mon Oct 10 08:38:59 EDT 2011
This allows for specifying an alternate configuration file path, similar
to pacman's "--config" option.
Given that there is currently no other way to tell pactree to read from
another configuration file (except for patching or symlinking), this
seems totally sensible - even if there are plans to refactor and/or
replace the standalone configuration file parser.
We do not define a short option for the sake of consistency with
pacman's set of command line options.
Signed-off-by: Lukas Fleischer <archlinux at cryptocrack.de>
---
src/util/pactree.c | 18 +++++++++++++++---
1 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/src/util/pactree.c b/src/util/pactree.c
index 09fe101..5e98f79 100644
--- a/src/util/pactree.c
+++ b/src/util/pactree.c
@@ -76,6 +76,11 @@ static struct color_choices no_color = {
""
};
+/* long operations */
+enum {
+ OP_CONFIG = 1000
+};
+
/* globals */
alpm_handle_t *handle = NULL;
alpm_list_t *walked = NULL;
@@ -90,6 +95,7 @@ int reverse = 0;
int unique = 0;
int searchsyncs = 0;
const char *dbpath = DBPATH;
+const char *configfile = CONFFILE;
#ifndef HAVE_STRNDUP
/* A quick and dirty implementation derived from glibc */
@@ -154,7 +160,7 @@ static int register_syncs(void) {
char line[LINE_MAX];
const alpm_siglevel_t level = ALPM_SIG_DATABASE | ALPM_SIG_DATABASE_OPTIONAL;
- fp = fopen(CONFFILE, "r");
+ fp = fopen(configfile, "r");
if(!fp) {
return 1;
}
@@ -202,6 +208,8 @@ static int parse_options(int argc, char *argv[])
{"reverse", no_argument, 0, 'r'},
{"sync", no_argument, 0, 'S'},
{"unique", no_argument, 0, 'u'},
+
+ {"config", required_argument, 0, OP_CONFIG},
{0, 0, 0, 0}
};
@@ -211,6 +219,9 @@ static int parse_options(int argc, char *argv[])
}
switch(opt) {
+ case OP_CONFIG:
+ configfile = optarg;
+ break;
case 'b':
dbpath = optarg;
break;
@@ -263,11 +274,12 @@ static void usage(void)
" -c, --color colorize output\n"
" -d, --depth <#> limit the depth of recursion\n"
" -g, --graph generate output for graphviz's dot\n"
+ " -h, --help display this help message\n"
" -l, --linear enable linear output\n"
" -r, --reverse show reverse dependencies\n"
" -s, --sync search sync DBs instead of local\n"
- " -u, --unique show dependencies with no duplicates (implies -l)\n\n"
- " -h, --help display this help message\n");
+ " -u, --unique show dependencies with no duplicates (implies -l)\n"
+ " --config <path> set an alternate configuration file\n");
}
static void cleanup(void)
--
1.7.7
More information about the pacman-dev
mailing list