X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccan_depends.c;h=1baff828c267899364bd06ee0500fb1ab875d45c;hp=5e9f812ecc46667557097e3bd2dc67fe71fab930;hb=088b2a9f4a7dedf357d90e5e420062461f78a13b;hpb=d4ace4a572234de67d1421a444c38bb4fdcbef43 diff --git a/tools/ccan_depends.c b/tools/ccan_depends.c index 5e9f812e..1baff828 100644 --- a/tools/ccan_depends.c +++ b/tools/ccan_depends.c @@ -2,31 +2,53 @@ #include #include #include -#include "string/string.h" -#include "talloc/talloc.h" +#include +#include int main(int argc, char *argv[]) { char **deps; unsigned int i; bool compile = false; + bool recurse = true; + bool ccan = true; + char *dirname, *basename; + if (argv[1] && streq(argv[1], "--direct")) { + argv++; + argc--; + recurse = false; + } if (argv[1] && streq(argv[1], "--compile")) { argv++; argc--; compile = true; } + if (argv[1] && streq(argv[1], "--non-ccan")) { + argv++; + argc--; + ccan = false; + } if (argc != 2) - errx(1, "Usage: ccan_depends [--compile] \n" - "Spits out all the ccan dependencies (recursively)"); + errx(1, "Usage: ccan_depends [--direct] [--compile] [--non-ccan] \n" + "Spits out all the ccan dependencies (recursively unless --direct)"); + + /* We find depends without compiling by looking for ccan/ */ + if (!ccan && !compile) + errx(1, "--non-ccan needs --compile"); + + dirname = talloc_dirname(NULL, argv[1]); + basename = talloc_basename(NULL, argv[1]); if (compile) - deps = get_deps(talloc_autofree_context(), argv[1]); + deps = get_deps(talloc_autofree_context(), + dirname, basename, recurse); else - deps = get_safe_ccan_deps(talloc_autofree_context(), argv[1]); + deps = get_safe_ccan_deps(talloc_autofree_context(), + dirname, basename, recurse); for (i = 0; deps[i]; i++) - if (strstarts(deps[i], "ccan/")) + if (strstarts(deps[i], "ccan/") == ccan) printf("%s\n", deps[i]); return 0; }