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.
27 lines
1.1 KiB
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}'
|
|
|