diff options
Diffstat (limited to 'grc')
-rw-r--r-- | grc/blocks/options.xml | 14 | ||||
-rw-r--r-- | grc/python/Generator.py | 14 |
2 files changed, 18 insertions, 10 deletions
diff --git a/grc/blocks/options.xml b/grc/blocks/options.xml index 756a4cd3d3..34822f1ebe 100644 --- a/grc/blocks/options.xml +++ b/grc/blocks/options.xml @@ -178,6 +178,18 @@ part#slurp </option> <tab>Advanced</tab> </param> + <param> + <name>Run Command</name> + <key>run_command</key> + <value>{python} -u {filename}</value> + <type>string</type> + <hide>#if $generate_options().startswith('hb') +all#slurp +#else +part#slurp +#end if</hide> + <tab>Advanced</tab> + </param> <check>not $window_size or len($window_size) == 2</check> <check>not $window_size or 300 <= $(window_size)[0] <= 4096</check> <check>not $window_size or 300 <= $(window_size)[1] <= 4096</check> @@ -206,5 +218,7 @@ To put hier blocks into the root category, enter / for the category. The Max Number of Output is the maximum number of output items allowed for any block \ in the flowgraph; to disable this set the max_nouts equal to 0.\ Use this to adjust the maximum latency a flowgraph can exhibit. + + </doc> </block> diff --git a/grc/python/Generator.py b/grc/python/Generator.py index 3c687a2d64..d48be2f00e 100644 --- a/grc/python/Generator.py +++ b/grc/python/Generator.py @@ -21,6 +21,7 @@ import os import sys import subprocess import tempfile +import shlex from distutils.spawn import find_executable from Cheetah.Template import Template @@ -120,20 +121,13 @@ class TopBlockGenerator(object): Returns: a popen object """ - # extract the path to the python executable - python_exe = sys.executable - - # when using wx gui on mac os, execute with pythonw - # using pythonw is not necessary anymore, disabled below - # if self._generate_options == 'wx_gui' and 'darwin' in sys.platform.lower(): - # python_exe = 'pythonw' - def args_to_string(args): """Accounts for spaces in args""" return ' '.join(repr(arg) if ' ' in arg else arg for arg in args) - # setup the command args to run - cmds = [python_exe, '-u', self.get_file_path()] # -u is unbuffered stdio + run_command = self._flow_graph.get_option('run_command') + cmds = shlex.split(run_command.format(python=sys.executable, + filename=self.get_file_path())) # when in no gui mode on linux, use a graphical terminal (looks nice) xterm_executable = find_executable(XTERM_EXECUTABLE) |