'Run a script that logs messages and uses ``FlockerScriptRunner``.
:param ICommandLineScript: Script to run. Must be class in this module.
:param list options: Extra command line options to pass to the
script.
:return: ``Deferred`` that fires with list of decoded JSON messages.'

def run_script(self, script, options=None):

    if (options is None):
        options = []
    code = _SCRIPT_CODE.format(script.__name__, script.__name__)
    d = getProcessOutput(sys.executable, (['-c', code] + options), env=os.environ, errortoo=True)
    d.addCallback((lambda data: (msg(('script    output:    ' + data)), data)[1]))
    d.addCallback((lambda data: map(loads, data.splitlines())))
    return d
