in azdev/operations/extensions/__init__.py [0:0]
def add_extension(extensions):
ext_paths = get_ext_repo_paths()
if not ext_paths or ext_paths == ['_NONE_']:
raise CLIError('Extension repo path is empty. Please try `azdev extension repo add` to add an extension repo')
all_extensions = find_files(ext_paths, 'setup.py')
if extensions == ['*']:
paths_to_add = [os.path.dirname(path) for path in all_extensions
if 'site-packages' not in path and 'vendored_sdks' not in path]
else:
paths_to_add = []
for path in all_extensions:
folder = os.path.dirname(path)
long_name = os.path.basename(folder)
if long_name in extensions:
paths_to_add.append(folder)
extensions.remove(long_name)
# raise error if any extension wasn't found
if extensions:
raise CLIError('extension(s) not found: {}'.format(' '.join(extensions)))
for path in paths_to_add:
result = pip_cmd('install -e {}'.format(path), "Adding extension '{}'...".format(path))
if result.error:
raise result.error # pylint: disable=raising-bad-type