summaryrefslogtreecommitdiffstats
path: root/image-file.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2011-06-27 08:39:51 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2011-06-27 08:39:51 +0200
commit7e5122f621bf3997e64a462cc121ca3db00489a5 (patch)
tree0c6977deabc7c41d262360e7984051592d514810 /image-file.c
downloadgenimage-7e5122f621bf3997e64a462cc121ca3db00489a5.tar.gz
genimage-7e5122f621bf3997e64a462cc121ca3db00489a5.tar.xz
initial import
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'image-file.c')
-rw-r--r--image-file.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/image-file.c b/image-file.c
new file mode 100644
index 0000000..97f2f78
--- /dev/null
+++ b/image-file.c
@@ -0,0 +1,47 @@
+#define _GNU_SOURCE
+#include <confuse.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "genimage.h"
+
+struct file {
+ char *name;
+};
+
+static int file_generate(struct image *image)
+{
+ struct file *f = image->handler_priv;
+ int ret;
+
+ ret = systemp(image, "cp %s/%s %s/%s", inputpath(), f->name, imagepath(), image->file);
+
+ return ret;
+}
+
+static int file_setup(struct image *image, cfg_t *cfg)
+{
+ struct file *f = xzalloc(sizeof(*f));
+
+ f->name = cfg_getstr(cfg, "name");
+ if (!f->name)
+ f->name = strdup(image->file);
+
+ image->handler_priv = f;
+
+ return 0;
+}
+
+static cfg_opt_t file_opts[] = {
+ CFG_STR("name", NULL, CFGF_NONE),
+ CFG_END()
+};
+
+struct image_handler file_handler = {
+ .type = "file",
+ .generate = file_generate,
+ .setup = file_setup,
+ .opts = file_opts,
+};
+