From 9f08ec5123ca37f1560e01478888de0a07aa144c Mon Sep 17 00:00:00 2001 From: Juan RP Date: Mon, 4 May 2015 18:12:52 +0200 Subject: [PATCH] xbps-fbulk: added support to just building pkgs specified as arguments. xbps-fbulk [options] void-packages [pkg pkgN] --- bin/xbps-fbulk/main.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/bin/xbps-fbulk/main.c b/bin/xbps-fbulk/main.c index 6d5cae44..5c47cdcb 100644 --- a/bin/xbps-fbulk/main.c +++ b/bin/xbps-fbulk/main.c @@ -148,7 +148,8 @@ addItem(const char *pkgn) static void __attribute__((noreturn)) usage(const char *progname) { - fprintf(stderr, "%s [-a targetarch] [-j parallel] [-l logdir] /path/to/void-packages\n", progname); + fprintf(stderr, "%s [-a targetarch] [-j parallel] [-l logdir] " + "/path/to/void-packages [pkg pkgN]\n", progname); exit(EXIT_FAILURE); } @@ -566,7 +567,7 @@ main(int argc, char **argv) argc -= optind; argv += optind; - if (argc != 1) { + if (argc < 1) { usage(progname); /* NOT REACHED */ } @@ -646,6 +647,7 @@ main(int argc, char **argv) if ((dir = opendir(rpath)) != NULL) { while ((den = readdir(dir)) != NULL) { char *xpath; + bool found = false; if (den->d_name[0] == '.') continue; @@ -656,6 +658,20 @@ main(int argc, char **argv) if (!S_ISDIR(st.st_mode)) continue; + if (argc == 1) { + /* process all pkgs */ + found = true; + } + /* only process pkgs specified as arguments */ + for (int i = 1; i < argc; i++) { + if (strcmp(argv[i], den->d_name) == 0) { + found = true; + break; + } + } + if (!found) + continue; + xpath = xbps_xasprintf("%s/template", den->d_name); if (lookupItem(den->d_name) == NULL &&