summaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
authorPali Rohár <pali.rohar@gmail.com>2014-09-29 00:48:13 +0200
committerPali Rohár <pali.rohar@gmail.com>2014-09-29 00:48:13 +0200
commit84fc04f647d425a38f3e5f0a77def3ab346520bd (patch)
tree3bf1befab38ad7602e66071f1ff13e13c55f4be0 /src/main.c
parent03c6c3899f6b2e1b9f3ff08817ef491eee99286f (diff)
download0xFFFF-84fc04f647d425a38f3e5f0a77def3ab346520bd.tar.bz2
main: Implement -t (filter by type) for -e (dump images)
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c
index 2daf848..6aa4870 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1177,9 +1177,21 @@ int main(int argc, char **argv) {
buf[0] = 0;
}
- for ( i = 0; i < IMAGE_COUNT; ++i )
- if ( image_tmp_name(i) )
- dev_dump_image(dev, i, image_tmp_name(i));
+ if ( filter_type ) {
+ enum image_type type = image_type_from_string(filter_type_arg);
+ if ( ! type || ! image_tmp_name(type) ) {
+ ERROR("Specified unknown image type for filtering: %s", filter_type_arg);
+ ret = 1;
+ goto clean;
+ }
+ ret = dev_dump_image(dev, type, image_tmp_name(type));
+ if ( ret != 0 )
+ goto clean;
+ } else {
+ for ( i = 0; i < IMAGE_COUNT; ++i )
+ if ( image_tmp_name(i) )
+ dev_dump_image(dev, i, image_tmp_name(i));
+ }
if ( buf[0] )
if ( chdir(buf) < 0 )