def invoke(cmd, check_rc=True, check_output=False):
    log = get_logger('SHELL')
    log(cmd)

    if check_output:
        try:
            return subprocess.check_output(cmd, shell=True)
        except subprocess.CalledProcessError:
            return ""

    else:
        rc = os.system(cmd)
        if check_rc and not rc == 0:
            msg = "command failed, rc: %s" % rc
            log(msg)
            raise Exception(msg)
        return rc
:returns: data source URL
dataset/ETHPy150Open mpdehaan/strider/lib/strider/common/commands.py/invoke--crossover with--dataset/ETHPy150Open ros-infrastructure/rosdep/src/rosdep2/sources_list.py/CachedDataSource.url