]> git.ozlabs.org Git - ccan/blobdiff - tools/ccan_depends.c
crcsync byte-at-a-time test reveals flaws in buffer handling.
[ccan] / tools / ccan_depends.c
index 982d13b32b9f90e3d555efffc44fa16c8ee0d486..91d7c98983c772c6acc989b467d2e782be209ccd 100644 (file)
@@ -2,18 +2,36 @@
 #include <err.h>
 #include <stdlib.h>
 #include <stdio.h>
-#include "string/string.h"
+#include <ccan/str/str.h>
+#include <ccan/talloc/talloc.h>
 
 int main(int argc, char *argv[])
 {
        char **deps;
        unsigned int i;
+       bool compile = false;
+       bool recurse = true;
 
+       if (argv[1] && streq(argv[1], "--direct")) {
+               argv++;
+               argc--;
+               recurse = false;
+       }
+       if (argv[1] && streq(argv[1], "--compile")) {
+               argv++;
+               argc--;
+               compile = true;
+       }
        if (argc != 2)
-               errx(1, "Usage: ccan_depends <dir>\n"
-                       "Spits out all the ccan dependencies (recursively)");
+               errx(1, "Usage: ccan_depends [--direct] [--compile] <dir>\n"
+                       "Spits out all the ccan dependencies (recursively unless --direct)");
+
+       if (compile)
+               deps = get_deps(talloc_autofree_context(), argv[1], recurse);
+       else
+               deps = get_safe_ccan_deps(talloc_autofree_context(), argv[1],
+                                         recurse);
 
-       deps = get_deps(NULL, argv[1]);
        for (i = 0; deps[i]; i++)
                if (strstarts(deps[i], "ccan/"))
                        printf("%s\n", deps[i]);