[pacman-dev] [PATCH] pactree: Add "--config" option
Dave Reisner
d at falconindy.com
Mon Oct 10 08:59:41 EDT 2011
On Mon, Oct 10, 2011 at 02:38:59PM +0200, Lukas Fleischer wrote:
> 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.
>
Shouldn't we complain if the config file isn't found now that we're
allowing a user specified location? As it stands, you can pass something
like:
pactree --config /not/a/real/path foo
And pactree won't complain. If you actually add the -s flag to walk the
sync DBs, pactree will just tell you 'foo not found', which isn't really
very helpful. Maybe I'm just bitter after a weekend of fighting false
negatives from another tool...
dave
> 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