summaryrefslogtreecommitdiffhomepage
path: root/src/driver
diff options
context:
space:
mode:
Diffstat (limited to 'src/driver')
-rw-r--r--src/driver/pe_driver_ctx.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/driver/pe_driver_ctx.c b/src/driver/pe_driver_ctx.c
index 97ff3fa..32e0819 100644
--- a/src/driver/pe_driver_ctx.c
+++ b/src/driver/pe_driver_ctx.c
@@ -8,6 +8,7 @@ enum app_tags {
TAG_HELP,
TAG_VERSION,
TAG_OUTPUT,
+ TAG_PRETTY,
TAG_EXPSYMS,
TAG_IMPLIBS,
TAG_IMPSYMS,
@@ -24,6 +25,9 @@ static const struct argv_option options[] = {
{"output", 'o',TAG_OUTPUT, ARGV_OPTARG_REQUIRED, 0,"<file>",
"write output to %s"},
+ {"pretty", 'p',TAG_PRETTY, ARGV_OPTARG_REQUIRED, "yaml",0,
+ "format output for parsing by %s"},
+
{"expsyms", 'e',TAG_EXPSYMS,ARGV_OPTARG_NONE, 0,0,
"print exported symbols" },
@@ -127,6 +131,7 @@ int pe_get_driver_ctx(
uint64_t fflags;
const char * program;
const char * output;
+ const char * pretty;
int fdout;
if (!(meta = argv_get(argv,options,pe_argv_flags(flags))))
@@ -135,6 +140,7 @@ int pe_get_driver_ctx(
dflags = 0;
fflags = 0;
output = 0;
+ pretty = 0;
nunits = 0;
program = argv_program_name(argv[0]);
@@ -157,6 +163,10 @@ int pe_get_driver_ctx(
output = entry->arg;
break;
+ case TAG_PRETTY:
+ pretty = entry->arg;
+ break;
+
case TAG_EXPSYMS:
fflags |= PERK_OUTPUT_EXPORT_SYMS;
break;
@@ -184,6 +194,9 @@ int pe_get_driver_ctx(
if (!ctx)
return pe_get_driver_ctx_fail(meta);
+ if (pretty && !strcmp(pretty,"yaml"))
+ fflags |= PERK_PRETTY_YAML;
+
ctx->program = program;
ctx->cctx.drvflags = dflags;
ctx->cctx.fmtflags = fflags;