tools/automation/setup/install_modules.py (20 lines of code) (raw):
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
import sys
import os
import subprocess
import automation.utilities.path as autmation_path
INSTALL_COMMAND = 'python -m pip install -e {}'
def install_modules():
all_modules = list(autmation_path.get_command_modules_paths())
print('Installing command modules')
print('Modules: {}'.format(', '.join(name for name, _ in all_modules)))
failures = []
for name, path in all_modules:
try:
subprocess.check_call(INSTALL_COMMAND.format(path).split())
except subprocess.CalledProcessError as err:
# exit code is not zero
failures.append('Failed to install {}. Error message: {}'.format(name, err.output))
for f in failures:
print(f)
return not any(failures)
if __name__ == '__main__':
sys.exit(0 if install_modules() else 1)