My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nomicon/rust-installer.py

27 lines
1.1 KiB

# The install script for rust components.
# Some toolchains have tons of install directives which makes bash script too slow.
import os
from pathlib import Path
from shutil import copy, copytree
out = Path(os.environ['out'])
verbose = os.environ.get('VERBOSE_INSTALL') == '1'
installer_version = int(Path('./rust-installer-version').read_text().strip())
if installer_version == 3:
for component in Path('./components').read_text().splitlines():
print(f'Installing component {component}')
for directive in (Path(component) / 'manifest.in').read_text().splitlines():
cmd, file = directive.split(':')
in_file, out_file = Path(component) / file, out / file
out_file.parent.mkdir(parents=True, exist_ok=True)
if verbose:
print(f'Installing {cmd}: {file}')
if cmd == 'file':
copy(in_file, out_file)
elif cmd == 'dir':
copytree(in_file, out_file)
else:
assert False, f'Unknown command: {cmd}'
else:
assert False, f'Unknown installer version: {installer_version}'