from . import plugin as plugin_mod
from . import driver as driver_mod
from . import ui
+from .compat import forking as forking # dynamically patch multiprocessing.forking
class Hooke (object):
self.config.write() # Does not preserve original comments
def run_command(self, command, arguments):
- """Run `command` with `arguments` using
+ """Run the command named `command` with `arguments` using
:meth:`~hooke.engine.CommandEngine.run_command`.
Allows for running commands without spawning another process
command = multiprocessing.Process(name='command engine',
target=hooke.engine.run, args=(hooke, ui_to_command, command_to_ui))
command.start()
+ hooke.engine = None # no more need for the UI-side version.
return (ui_to_command, command_to_ui, command)
def _cleanup_run(self, ui_to_command, command_to_ui, command):
action='append', default=[],
help='Add a command line Hooke command to run.')
p.add_option(
- '--command-no-exit', dest='command_exit',
- action='store_false', default=True,
+ '-p', '--persist', dest='persist', action='store_true', default=False,
help="Don't exit after running a script or commands.")
p.add_option(
'--save-config', dest='save_config',
try:
hooke = runner.run_lines(hooke, options.commands)
finally:
- if options.command_exit == True:
+ if options.persist == False:
hooke.close(save_config=options.save_config)
sys.exit(0)