rfc822: Update rfc822 module to use testdepends
[ccan] / tools / ccan_depends.c
1 #include "tools.h"
2 #include <err.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <ccan/str/str.h>
6 #include <ccan/talloc/talloc.h>
7
8 int main(int argc, char *argv[])
9 {
10         char **deps;
11         unsigned int i;
12         bool compile = false;
13         bool recurse = true;
14         bool ccan = true;
15         const char *style = "depends";
16
17         if (argv[1] && streq(argv[1], "--direct")) {
18                 argv++;
19                 argc--;
20                 recurse = false;
21         }
22         if (argv[1] && streq(argv[1], "--compile")) {
23                 argv++;
24                 argc--;
25                 compile = true;
26         }
27         if (argv[1] && streq(argv[1], "--non-ccan")) {
28                 argv++;
29                 argc--;
30                 ccan = false;
31         }
32         if (argv[1] && streq(argv[1], "--tests")) {
33                 argv++;
34                 argc--;
35                 style = "testdepends";
36         }
37         if (argc != 2)
38                 errx(1, "Usage: ccan_depends [--direct] [--compile] [--non-ccan] [--tests] <dir>\n"
39                         "Spits out all the ccan dependencies (recursively unless --direct)");
40
41         /* We find depends without compiling by looking for ccan/ */
42         if (!ccan && !compile)
43                 errx(1, "--non-ccan needs --compile");
44
45         if (compile)
46                 deps = get_deps(talloc_autofree_context(), argv[1],
47                                 style, recurse, compile_info);
48         else
49                 deps = get_safe_ccan_deps(talloc_autofree_context(),
50                                           argv[1], style, recurse);
51
52         for (i = 0; deps[i]; i++)
53                 if (strstarts(deps[i], "ccan/") == ccan)
54                         printf("%s\n", deps[i]);
55         return 0;
56 }