[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