forked from MycroftAI/mycroft-core
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdev_setup.sh
executable file
·92 lines (79 loc) · 2.57 KB
/
dev_setup.sh
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
#!/usr/bin/env bash
######################################################
# dev_setup.sh
# @author sean.fitzgerald (aka clusterfudge)
#
# The purpose of this script is to create a self-
# contained development environment using
# virtualenv for python dependency sandboxing.
# This script will create a virtualenv (using the
# conventions set by virtualenv-wrapper for
# location and naming) and install the requirements
# laid out in requirements.txt, pocketsphinx, and
# pygtk into the virtualenv. Mimic will be
# installed and built from source inside the local
# checkout.
#
# The goal of this script is to create a development
# environment in user space that is fully functional.
# It is expected (and even encouraged) for a developer
# to work on multiple projects concurrently, and a
# good OSS citizen respects that and does not pollute
# a developers workspace with it's own dependencies
# (as much as possible).
# </endRant>
######################################################
# exit on any error
set -Ee
if [ $(id -u) -eq 0 ]; then
echo "This script should not be run as root or with sudo."
exit 1
fi
TOP=$(cd $(dirname $0) && pwd -L)
if [ -z "$WORKON_HOME" ]; then
VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${HOME}/.virtualenvs/mycroft"}
else
VIRTUALENV_ROOT="$WORKON_HOME/mycroft"
fi
# skip mimic build?
if [[ "$1" == '-sm' ]] ; then
build_mimic='n'
fi
if [[ "$1" != '-sm' ]] && hash mimic ; then
if mimic -lv | grep -q Voice ; then
echo "Existing mimic installation. press y to build mimic again, any other key to skip."
read -n1 build_mimic
fi
fi
# create virtualenv, consistent with virtualenv-wrapper conventions
if [ ! -d "${VIRTUALENV_ROOT}" ]; then
mkdir -p $(dirname "${VIRTUALENV_ROOT}")
virtualenv -p python2.7 "${VIRTUALENV_ROOT}"
fi
source "${VIRTUALENV_ROOT}/bin/activate"
cd "${TOP}"
easy_install pip==7.1.2 # force version of pip
pip install --upgrade virtualenv
# install requirements (except pocketsphinx)
# removing the pip2 explicit usage here for consistency with the above use.
pip install -r requirements.txt
if [[ $(free|awk '/^Mem:/{print $2}') -lt 1572864 ]] ; then
CORES=1
else
CORES=$(nproc)
fi
echo "Building with $CORES cores."
#build and install pocketsphinx
#cd ${TOP}
#${TOP}/scripts/install-pocketsphinx.sh -q
#build and install mimic
cd "${TOP}"
build_mimic="${build_mimic:-y}"
if [[ "$build_mimic" == 'y' ]] ; then
echo "WARNING: The following can take a long time to run!"
"${TOP}/scripts/install-mimic.sh"
else
echo "Skipping mimic build."
fi
# install pygtk for desktop_launcher skill
"${TOP}/scripts/install-pygtk.sh"