Package: dchroot Version: 0.11 Severity: normal Tags: patch Hi,
I wanted to be able to check if certain chroots were available, without having to have another program parse the dchroot.conf format correctly. The following patch extends the command-line options to add an optional argument to the '-l' option. If specified, it prints the path of the chroot, and returns 0, or prints an error and returns 1 if the chroot does not exist. As before, it lists all chroots if no arguments are given. BTW, I didn't update the help text. The ugliness in the option parsing is due to the fact that you aren't using getopt(3) to parse the options. I can send a separate patch to add this if you like. Regards, Roger --- dchroot-0.11.old/dchroot.c 2005-04-09 20:51:31.000000000 +0100 +++ dchroot-0.11/dchroot.c 2005-06-07 21:42:46.271391208 +0100 @@ -344,6 +344,19 @@ } } +static int list_chroot(struct chroot_map *chroots, + const char *chroot) +{ + while (chroots) { + if (strcmp(chroot, chroots->name) == 0) { + printf("%s\n", chroots->newroot); + return EXIT_SUCCESS; + } + chroots = chroots->next; + } + fprintf(stderr, "%s: chroot not found\n", chroot); + return EXIT_FAILURE; +} static void usage(char *cmd) { @@ -398,8 +411,18 @@ case 'l': if ((chroots = read_chroots(CHROOTS_CONF)) == NULL) { printf("No chroots found.\n"); - } else { - list_chroots(chroots); + } + if (index + 1 < argc) { + opts.newroot = argv[index + 1]; + if (*opts.newroot == '-') { + opts.newroot = NULL; + list_chroots(chroots); + printf("\n"); + } else { + exit(list_chroot(chroots, opts.newroot)); + } + } else { /* Special case in case it's the last option */ + list_chroots(chroots); printf("\n"); } exit(EXIT_SUCCESS); -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (990, 'unstable') Architecture: powerpc (ppc) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.11.8 Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Versions of packages dchroot depends on: ii libc6 2.3.2.ds1-22 GNU C Library: Shared libraries an -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]