-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
104 lines (86 loc) · 2.37 KB
/
install.sh
File metadata and controls
104 lines (86 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/bin/bash
set -e
. ./library_scripts.sh
# nanolayer is a cli utility which keeps container layers as small as possible
# source code: https://github.com/devcontainers-contrib/nanolayer
# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations,
# and if missing - will download a temporary copy that automatically get deleted at the end
# of the script
ensure_nanolayer nanolayer_location "v0.5.0"
$nanolayer_location install apt-get pip,python3-dev,gcc
# --break-system-packages required by latest Debian-based distros to install the package system-wide
EXT_MANAGED_PY=$(pip install --help | grep -o '\-\-break-system-packages' | cat) # cat prevents grep to exit with error if not matching
install_package() {
local package_name=$(echo "$1" | tr '[:upper:]' '[:lower:]') # convert to lowercase
local package_version="$2"
echo "Installing $package_name (version $package_version)..."
if [ "$package_version" != "latest" ] ; then
pip install $EXT_MANAGED_PY "${package_name}client"=="${package_version}"
else
pip install $EXT_MANAGED_PY "${package_name}client"
fi
echo "Installed"
}
# ---------------------
# Installation
# Install primary client
install_package python-openstack "$VERSION"
# Install other clients
# e.g., <<PROJECT>>client
projects=( \
AODH \
HPLEFTHAND \
PANKO \
TROVE \
)
# e.g., python-<<PROJECT>>client
prefixed_projects=(\
BARBICAN \
BLAZAR \
CEILOMETER \
CINDER \
CLOUDKITTY \
CONGRESS \
CYBORG \
DESIGNATE \
FREEZER \
GLANCE \
GLARE \
HEAT \
IRONIC \
KARBOR \
KEYSTONE \
MAGNUM \
MANILA \
MISTRAL \
MONASCA \
MURANO \
NEUTRON \
NOVA \
OCTAVIA \
QINLING \
SAHARA \
SEARCHLIGHT \
SENLIN \
SWIFT \
TACKER \
VITRAGE \
WATCHER \
ZAQAR \
ZUN \
)
for project in ${projects[@]} ; do
# ${project} == variable name
# ${!project} == variable value
if [ -n "${!project}" ] && [ "${!project}" != "none" ] ; then
install_package "${project}" "${!project}"
fi
done
for project in ${prefixed_projects[@]} ; do
# ${project} == variable name
# ${!project} == variable value
if [ -n "${!project}" ] && [ "${!project}" != "none" ] ; then
install_package "python-${project}" "${!project}"
fi
done
echo 'Done!'