diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2011-06-27 08:39:51 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-06-27 08:39:51 +0200 |
commit | 7e5122f621bf3997e64a462cc121ca3db00489a5 (patch) | |
tree | 0c6977deabc7c41d262360e7984051592d514810 /image-file.c | |
download | genimage-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.c | 47 |
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, +}; + |