From 84fc04f647d425a38f3e5f0a77def3ab346520bd Mon Sep 17 00:00:00 2001 From: Pali Rohár Date: Mon, 29 Sep 2014 00:48:13 +0200 Subject: main: Implement -t (filter by type) for -e (dump images) --- src/main.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/main.c') 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 ) -- cgit v1.2.3