File: //opt/saltstack/salt/lib/python3.10/site-packages/relenv/build/__pycache__/common.cpython-310.pyc
o
�N�g�� � @ sZ d Z ddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z" ddl#Z$dZ%zddl&m'Z'm(Z( ddl)m*Z* W n e+y� dZ%Y nw e�,e-�Z.d Z/d
Z0dZ1dZ2d
Z3dej4v Z5dZ6dZ7dZ8dIdd�Z9dd� Z:dJdd�Z;dd� Z<dd� Z=dd� Z>dKdd�Z?dd � Z@d!d"� ZAd#d$� ZBd%d&� ZCd'd(� ZDd)d*� ZEd+d,� ZFd-d.� ZGd/d0� ZHd1d2� ZIG d3d4� d4�ZJG d5d6� d6�ZKG d7d8� d8�ZLeL� ZMG d9d:� d:�ZNd;d<� ZOd=d>� ZPd?d@� ZQdAdB� ZRdCdD� ZSdEdF� ZTdIdGdH�ZUdS )Lz
Build process common methods.
� N)�
HTMLParser)�DATA_DIR�LINUX�
MODULE_DIR�RelenvException�
build_arch�download_url�extract_archive�format_shebang�get_download_location�
get_toolchain�get_triplet�runcmd� work_dirs� fetch_urlT)�InvalidVersion�parse)�LooseVersionFz[0;32mz[1;33mz[0;31mz[0mz[FZCIaB import os; import sys; from importlib import util; from pathlib import Path; spec = util.spec_from_file_location('relenv.runtime', str(Path(__file__).parent / 'site-packages' / 'relenv' / 'runtime.py')); mod = util.module_from_spec(spec); sys.modules['relenv.runtime'] = mod; spec.loader.exec_module(mod); mod.bootstrap();a�
import pathlib, sys, platform, os
def build_arch():
machine = platform.machine()
return machine.lower()
def get_triplet(machine=None, plat=None):
if not plat:
plat = sys.platform
if not machine:
machine = build_arch()
if plat == "darwin":
return f"{machine}-macos"
elif plat == "win32":
return f"{machine}-win"
elif plat == "linux":
return f"{machine}-linux-gnu"
else:
raise RelenvException("Unknown platform {}".format(platform))
pydir = pathlib.Path(__file__).resolve().parent
if sys.platform == "win32":
DEFAULT_DATA_DIR = pathlib.Path.home() / "AppData" / "Local" / "relenv"
else:
DEFAULT_DATA_DIR = pathlib.Path.home() / ".local" / "relenv"
if "RELENV_DATA" in os.environ:
DATA_DIR = pathlib.Path(os.environ["RELENV_DATA"]).resolve()
else:
DATA_DIR = DEFAULT_DATA_DIR
buildroot = pydir.parent.parent
toolchain = DATA_DIR / "toolchain" / get_triplet()
build_time_vars = {}
for key in _build_time_vars:
val = _build_time_vars[key]
orig = val
if isinstance(val, str):
val = val.format(
BUILDROOT=buildroot,
TOOLCHAIN=toolchain,
)
build_time_vars[key] = val
c C s |du ri }t rtj�� dS g }| D ]]}| | �� s!d�t�}nJ||v r\t�� }||vr3d|f||<