]> git.ozlabs.org Git - ccan/blob - tools/create_dep_tar.c
8247e57ef11d8642706985b7582344a9dd694998
[ccan] / tools / create_dep_tar.c
1 #include "tools.h"
2 #include <err.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <string.h>
6 #include "ccan/string/string.h"
7 #include "ccan/talloc/talloc.h"
8
9 #define TAR_CMD "tar cvvf "
10
11 static void create_tar(char **deps, const char *dir)
12 {
13         FILE *p;
14         char *cmd_args, *cmd, *module, *buffer;
15
16         /* getting module name*/
17         module = strrchr(dir, '/');
18         module++;
19         
20         cmd_args = strjoin(NULL, deps, " ");    
21         cmd = talloc_asprintf(NULL, TAR_CMD "%s/%s_dep.tar %s", dir, module, cmd_args);
22                 
23         p = popen(cmd, "r");
24         if (!p)
25                 err(1, "Executing '%s'", cmd);
26
27         buffer = grab_fd(NULL, fileno(p));
28         if (!buffer)
29                 err(1, "Reading from '%s'", cmd);
30         pclose(p);
31 }
32
33 int main(int argc, char *argv[])
34 {
35         char **deps;
36
37         if (argc != 2)
38                 errx(1, "Usage: create_dep_tar <dir>\n"
39                         "Create tar of all the ccan dependencies");
40
41         deps = get_deps(NULL, argv[1]);
42         if(deps != NULL)
43                 create_tar(deps, argv[1]);
44         return 0;
45 }