From 54e02f64a15b3a2c679399575a53b69f65bc6514 Mon Sep 17 00:00:00 2001 From: jcorgan Date: Wed, 8 Jul 2009 06:32:08 +0000 Subject: [PATCH] Adds short commandline parameter handling in GRC. git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11376 221aa14e-8319-0410-a670-987f0aec2ac5 --- grc/blocks/parameter.xml | 12 +++++++++++- grc/python/Param.py | 7 +++++++ grc/python/flow_graph.tmpl | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/grc/blocks/parameter.xml b/grc/blocks/parameter.xml index 21e5f04b..682f626e 100644 --- a/grc/blocks/parameter.xml +++ b/grc/blocks/parameter.xml @@ -16,6 +16,12 @@ string #if $label() then 'none' else 'part'# + + Short ID + short_id + + string + Value value @@ -74,6 +80,10 @@ The paramater value cannot depend on any variables. Leave the label blank to use the parameter id as the label. -When type is not None, this parameter also becomes a command line option of the form --[id] [value]. +When type is not None, this parameter also becomes a command line option of the form: + +-[short_id] --[id] [value] + +The Short ID field may be left blank. diff --git a/grc/python/Param.py b/grc/python/Param.py index f971d0c3..15ccd323 100644 --- a/grc/python/Param.py +++ b/grc/python/Param.py @@ -302,6 +302,13 @@ class Param(_Param): elif t in ('string', 'file_open', 'file_save'): #do not check if file/directory exists, that is a runtime issue e = eval_string(v) + str_e = str(e) + if t == 'string' and self.get_name() == 'Short ID' and len(str_e) > 0: + try: + assert len(str_e) == 1 + ord_e = ord(str_e) + assert ord_e >= ord('a') and ord_e <= ord('z') or ord_e >= ord('A') and ord_e <= ord('Z') + except AssertionError: raise Exception, 'Short ID "%s" must be a single letter'%v return str(e) ######################### # Unique ID Type diff --git a/grc/python/flow_graph.tmpl b/grc/python/flow_graph.tmpl index a94e45e8..bc89fb1b 100644 --- a/grc/python/flow_graph.tmpl +++ b/grc/python/flow_graph.tmpl @@ -189,7 +189,7 @@ if __name__ == '__main__': #set $type = $param.get_param('type').get_value() #if $type #silent $params_eq_list.append('%s=options.%s'%($param.get_id(), $param.get_id())) - parser.add_option("--$param.get_id()", dest="$param.get_id()", type="$type", default=$param.get_make(), + parser.add_option("-$param.get_param('short_id').get_value()", "--$param.get_id()", dest="$param.get_id()", type="$type", default=$param.get_make(), help="Set $($param.get_param('label').evaluate() or $param.get_id()) [default=%default]") #end if #end for -- 2.47.2