]> git.ozlabs.org Git - ccan/blobdiff - tools/create_dep_tar.c
commiting create_dep_tar uses get_deps as of now
[ccan] / tools / create_dep_tar.c
diff --git a/tools/create_dep_tar.c b/tools/create_dep_tar.c
new file mode 100644 (file)
index 0000000..8247e57
--- /dev/null
@@ -0,0 +1,45 @@
+#include "tools.h"
+#include <err.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "ccan/string/string.h"
+#include "ccan/talloc/talloc.h"
+
+#define TAR_CMD "tar cvvf "
+
+static void create_tar(char **deps, const char *dir)
+{
+       FILE *p;
+       char *cmd_args, *cmd, *module, *buffer;
+
+       /* getting module name*/
+       module = strrchr(dir, '/');
+       module++;
+       
+       cmd_args = strjoin(NULL, deps, " ");    
+       cmd = talloc_asprintf(NULL, TAR_CMD "%s/%s_dep.tar %s", dir, module, cmd_args);
+               
+       p = popen(cmd, "r");
+       if (!p)
+               err(1, "Executing '%s'", cmd);
+
+       buffer = grab_fd(NULL, fileno(p));
+       if (!buffer)
+               err(1, "Reading from '%s'", cmd);
+       pclose(p);
+}
+
+int main(int argc, char *argv[])
+{
+       char **deps;
+
+       if (argc != 2)
+               errx(1, "Usage: create_dep_tar <dir>\n"
+                       "Create tar of all the ccan dependencies");
+
+       deps = get_deps(NULL, argv[1]);
+       if(deps != NULL)
+               create_tar(deps, argv[1]);
+       return 0;
+}