forked from splintered-reality/py_trees
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvenv.bash
executable file
·135 lines (104 loc) · 2.95 KB
/
venv.bash
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/bash
# Script for setting up the development environment.
#source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
PROJECT=py_trees
SRC_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
VENV_DIR=${SRC_DIR}/.venv
##############################################################################
# Colours
##############################################################################
BOLD="\e[1m"
CYAN="\e[36m"
GREEN="\e[32m"
RED="\e[31m"
YELLOW="\e[33m"
RESET="\e[0m"
padded_message ()
{
line="........................................"
printf "%s %s${2}\n" ${1} "${line:${#1}}"
}
pretty_header ()
{
echo -e "${BOLD}${1}${RESET}"
}
pretty_print ()
{
echo -e "${GREEN}${1}${RESET}"
}
pretty_warning ()
{
echo -e "${YELLOW}${1}${RESET}"
}
pretty_error ()
{
echo -e "${RED}${1}${RESET}"
}
##############################################################################
# Methods
##############################################################################
install_package ()
{
PACKAGE_NAME=$1
dpkg -s ${PACKAGE_NAME} > /dev/null
if [ $? -ne 0 ]; then
sudo apt-get -q -y install ${PACKAGE_NAME} > /dev/null
else
pretty_print " $(padded_message ${PACKAGE_NAME} "found")"
return 0
fi
if [ $? -ne 0 ]; then
pretty_error " $(padded_message ${PACKAGE_NAME} "failed")"
return 1
fi
pretty_warning " $(padded_message ${PACKAGE_NAME} "installed")"
return 0
}
##############################################################################
#############################
# Checks
#############################
[[ "${BASH_SOURCE[0]}" != "${0}" ]] && SOURCED=1
if [ -z "$SOURCED" ]; then
pretty_error "This script needs to be sourced, i.e. source './setup.bash', not './setup.bash'"
exit 1
fi
#############################
# System Dependencies
#############################
pretty_header "System Dependencies"
install_package python3-dev || return
install_package python3-venv || return
#############################
# Virtual Env
#############################
pretty_header "Virtual Environment"
if [ -x ${VENV_DIR}/bin/pip3 ]; then
pretty_print " $(padded_message "virtual_environment" "found [${VENV_DIR}]")"
else
python3 -m venv ${VENV_DIR}
pretty_warning " $(padded_message "virtual_environment" "created [${VENV_DIR}]")"
fi
source ${VENV_DIR}/bin/activate
#############################
# Pypi Dependencies
#############################
pretty_header "PyPi Dependencies"
# upgrade pip3
python3 -m pip install -U pip
# build environment depedencies
pip3 install wheel
pip3 install "setuptools==45.2"
# Get all dependencies for testing, doc generation
# pip install -e .[docs]
# we have to restrict versions because of bleeding edge incompatibilities
pip3 install -r rtd-requirements.txt
pip3 install -e .[test]
pip3 install -e .[debs]
# NB: this automagically nabs install_requires
python3 setup.py develop
echo ""
echo "Leave the virtual environment with 'deactivate'"
echo ""
echo "I'm grooty, you should be too."
echo ""