Esempio n. 1
0
    def is_available():
        # always return True if running in test environment
        if os.environ.get("JAVAPACKAGES_XMVN_RESOLVE_TEST", None) is not None:
            return True

        command = "type {tool}".format(tool=XMvnResolve.tool)
        rc, _, _ = execute_command(command)
        return True if not rc else False
Esempio n. 2
0
    def process_raw_request(raw_request_list):
        if not raw_request_list:
            return []
        command = "{tool} {args}".format(tool=XMvnResolve.tool,
                                         args="--raw-request")
        request = XMvnResolve._join_raw_requests(raw_request_list)
        test_env = os.environ.get("JAVAPACKAGES_XMVN_RESOLVE_TEST", None)
        if not test_env:
            rc, stdout, stderr = execute_command(command, input=request)
            if rc:
                raise Exception("xmvn-resolve failed:\n" + stderr)
        else:
            stdout = ""
            with open(test_env, "rb") as f:
                lines = f.readlines()
                stdout = lines[0].decode("UTF-8")
                lines = lines[1:]
            with open(test_env, "wb") as f:
                f.write(b"\n".join(lines))

        result = XMvnResolve._process_results(stdout)
        return result
Esempio n. 3
0
    def process_raw_request(raw_request_list):
        if not raw_request_list:
            return []
        command = "{tool} {args}".format(tool=XMvnResolve.tool,
                                         args="--raw-request")
        request = XMvnResolve._join_raw_requests(raw_request_list)
        test_env = os.environ.get("JAVAPACKAGES_XMVN_RESOLVE_TEST", None)
        if not test_env:
            rc, stdout, stderr = execute_command(command, input=request)
            if rc:
                raise XMvnResolveException("xmvn-resolve failed:\n" + stderr)
        else:
            stdout = ""
            with open(test_env, "rb") as f:
                lines = f.readlines()
                stdout = lines[0].decode("UTF-8")
                lines = lines[1:]
            with open(test_env, "wb") as f:
                f.write(b"\n".join(lines))

        result = XMvnResolve._process_results(stdout)
        return result
Esempio n. 4
0
def call_rpmgen(rpmgen_name, filelist_prefix, filelist, env=None, config=''):
    scriptpath = path.join(DIRPATH, '..', 'depgenerators', rpmgen_name)
    stdin = []
    if not filelist:
        filelist = ["/dev/null"]

    if filelist_prefix:
        stdin.extend([
            os.path.abspath(os.path.join(filelist_prefix, x)) for x in filelist
        ])
    else:
        stdin = filelist

    if not env:
        env = {}

    buildroot = "/dev/null"
    if "RPM_BUILD_ROOT" not in env and stdin:
        result = re.match(".*?/buildroot/", stdin[0])
        if result:
            buildroot = os.path.abspath(result.group(0))
    env.update({"RPM_BUILD_ROOT": buildroot})

    try:
        shutil.rmtree("/tmp/.javapackages_cache/")
    except OSError:
        pass
    for line in stdin:
        _, dummy_pid, _ = util.execute_command("echo $$")
        ret = call_script(scriptpath,
                          ["--cachedir", "/tmp", "--rpm-pid", dummy_pid],
                          stdin=line,
                          extra_env=env)
    try:
        shutil.rmtree("/tmp/.javapackages_cache/")
    except OSError:
        pass
    return ret