#!/usr/bin/env python
# Don't run tests from the root repo dir.
# We want to ensure we're importing from the installed
# binary package not from the CWD.
import os
import re
from subprocess import check_output
from awscli.testutils import cd
_dname = os.path.dirname
REPO_ROOT = _dname(_dname(_dname(os.path.abspath(__file__))))
def run(command):
print(f'Running {command}')
return check_output(command, shell=True)
def run_make_bundle():
"""
Builds the bundled installer, and returns its path
"""
output = run(f'{REPO_ROOT}/scripts/make-bundle')
match = re.search(
r'Zipped bundle installer is at: (.+?\.zip)', output.decode('utf-8')
)
if not match:
raise RuntimeError("Could not find bundle path in make-bundle output")
return match.group(1)
def install_from_bundle(zip_path):
run(f'unzip -o {bundle_path}')
path_without_zip = bundle_path[:-4]
run(
f'sudo {path_without_zip}/install -i /usr/local/aws -b /usr/local/bin/aws'
)
def verify_installation():
version_output = run("aws --version")
print(f"Installed AWS CLI version: {version_output}")
if __name__ == "__main__":
with cd(os.path.join(REPO_ROOT)):
bundle_path = run_make_bundle()
install_from_bundle(bundle_path)
verify_installation()