view scripts/vimutil.py @ 15:cfcac4ed7d21 default tip

Improve loading of solution files - New argument to force a rebuild of the cache - Gracefully handle missing projects in a solution - Handle more different xml namespaces - Support more edge cases
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 29 Aug 2023 12:59:54 -0700
parents 5d2c0db51914
children
line wrap: on
line source

import io
import sys


def runscript(scriptfunc, *args):
    """ Executes a given function with the given args. This is because
        the convention is that all python scripts here should have a `main`
        function that takes a custom list of args to override the default
        behaviour of using `sys.args`.
    """
    prevout = sys.stdout
    captured = io.StringIO()
    sys.stdout = captured
    try:
        scriptfunc(args)
    finally:
        sys.stdout = prevout
    return captured.getvalue()