Skip to content

Commit e726503

Browse files
committed
fl: setup/install: integrate Pynab CLI.
1 parent b45a927 commit e726503

File tree

5 files changed

+72
-30
lines changed

5 files changed

+72
-30
lines changed

install.sh

Lines changed: 55 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ elif [ "${1:-}" == "test" ]; then
3030
test=1
3131
elif [ "${1:-}" == "--upgrade" ]; then
3232
upgrade=1
33-
# auto-detect maker faire card here.
33+
# auto-detect Maker Faire card here.
3434
if [ `sudo aplay -L | grep -c "hifiberry"` -gt 0 ]; then
3535
makerfaire2018=1
3636
fi
@@ -71,7 +71,7 @@ if [ $makerfaire2018 -eq 1 ]; then
7171
fi
7272

7373
if [ $upgrade -eq 1 -a $makerfaire2018 -eq 0 -a -d ${home_dir}/wm8960 ]; then
74-
echo "Updating sound driver - 2/14" > /tmp/pynab.upgrade
74+
echo "Updating sound driver - 2/15" > /tmp/pynab.upgrade
7575
cd ${home_dir}/wm8960
7676
sudo chown -R ${owner} .git
7777
pull=`git pull`
@@ -82,7 +82,7 @@ if [ $upgrade -eq 1 -a $makerfaire2018 -eq 0 -a -d ${home_dir}/wm8960 ]; then
8282
fi
8383

8484
if [ $upgrade -eq 1 ]; then
85-
echo "Updating ears driver - 3/14" > /tmp/pynab.upgrade
85+
echo "Updating ears driver - 3/15" > /tmp/pynab.upgrade
8686
if [ -d ${home_dir}/tagtagtag-ears ]; then
8787
cd ${home_dir}/tagtagtag-ears
8888
sudo chown -R ${owner} .git
@@ -106,7 +106,7 @@ else
106106
fi
107107

108108
if [ $upgrade -eq 1 ]; then
109-
echo "Updating RFID driver - 4/14" > /tmp/pynab.upgrade
109+
echo "Updating RFID driver - 4/15" > /tmp/pynab.upgrade
110110
if [ -d ${home_dir}/cr14 ]; then
111111
cd ${home_dir}/cr14
112112
sudo chown -R ${owner} .git
@@ -130,7 +130,7 @@ else
130130
fi
131131

132132
if [ $upgrade -eq 1 ]; then
133-
echo "Updating nabblockly - 5/14" > /tmp/pynab.upgrade
133+
echo "Updating NabBlockly - 5/15" > /tmp/pynab.upgrade
134134
if [ -d ${root_dir}/nabblockly ]; then
135135
cd ${root_dir}/nabblockly
136136
sudo chown -R ${owner} .
@@ -139,44 +139,68 @@ if [ $upgrade -eq 1 ]; then
139139
./rebar3 release
140140
fi
141141
else
142-
echo "You may want to install nabblockly from https://github.com/pguyot/nabblockly"
142+
echo "You may want to install NabBlockly from https://github.com/pguyot/nabblockly"
143143
fi
144144
else
145145
if [ $ci_chroot -eq 0 -a ! -d "${root_dir}/nabblockly" ]; then
146-
echo "You may want to install nabblockly from https://github.com/pguyot/nabblockly"
146+
echo "You may want to install NabBlockly from https://github.com/pguyot/nabblockly"
147+
fi
148+
fi
149+
150+
if [ $upgrade -eq 1 ]; then
151+
echo "Updating Pynab CLI - 6/15" > /tmp/pynab.upgrade
152+
if [ -d ${home_dir}/pynab_cli ]; then
153+
cd ${home_dir}/pynab_cli
154+
sudo chown -R ${owner} .
155+
pull=`git pull`
156+
if [ "$pull" != "Already up to date." ]; then
157+
sudo -u ${owner} mkdir -p ${home_dir}/bin
158+
cd ${home_dir}/bin
159+
sudo -u ${owner} ln -fs ../pynab_cli/bin/* .
160+
fi
161+
else
162+
cd ${home_dir}
163+
git clone -b release https://github.com/f-laurens/pynab_cli
164+
sudo -u ${owner} mkdir -p ${home_dir}/bin
165+
cd ${home_dir}/bin
166+
sudo -u ${owner} ln -fs ../pynab_cli/bin/* .
167+
fi
168+
else
169+
if [ $ci_chroot -eq 0 -a ! -d "${home_dir}/pynab_cli" ]; then
170+
echo "You may want to install Pynab CLI from https://github.com/f-laurens/pynab_cli"
147171
fi
148172
fi
149173

150174
cd ${home_dir}
151175
if [ $makerfaire2018 -eq 0 ]; then
152176
if [ $upgrade -eq 1 ]; then
153-
echo "Updating ASR models - 6/14" > /tmp/pynab.upgrade
177+
echo "Updating ASR models - 7/15" > /tmp/pynab.upgrade
154178
fi
155179

156-
# maker faire card has no mic, no need to install kaldi
180+
# Maker Faire card has no mic, no need to install Kaldi
157181
if [ ! -d "/opt/kaldi" ]; then
158-
echo "Installing precompiled kaldi into /opt"
182+
echo "Installing precompiled Kaldi into /opt"
159183
wget -O - -q https://github.com/pguyot/kaldi/releases/download/v5.4.1/kaldi-c3260f2-linux_armv6l-vfp.tar.xz | sudo tar xJ -C /
160184
sudo ldconfig
161185
fi
162186

163187
sudo mkdir -p "/opt/kaldi/model"
164188

165189
if [ ! -d "/opt/kaldi/model/kaldi-nabaztag-en-adapt-r20191222" ]; then
166-
echo "Uncompressing kaldi model for English"
190+
echo "Installing Kaldi model for English"
167191
sudo tar xJf ${root_dir}/asr/kaldi-nabaztag-en-adapt-r20191222.tar.xz -C /opt/kaldi/model/
168192
fi
169193

170194
if [ ! -d "/opt/kaldi/model/kaldi-nabaztag-fr-adapt-r20200203" ]; then
171-
echo "Uncompressing kaldi model for French"
195+
echo "Installing Kaldi model for French"
172196
sudo tar xJf ${root_dir}/asr/kaldi-nabaztag-fr-adapt-r20200203.tar.xz -C /opt/kaldi/model/
173197
fi
174198
fi
175199

176200
cd ${root_dir}
177201
if [ ! -d "venv" ]; then
178202
if ! [ -x "$(command -v python3.7)" ] ; then
179-
echo "Please install Python 3.7 (you might need to upgrade your Raspbian distribution)"
203+
echo "Please install Python 3.7 (you might need to upgrade your Linux distribution)"
180204
exit 1
181205
fi
182206

@@ -186,34 +210,34 @@ fi
186210

187211
echo "Installing PyPi requirements"
188212
if [ $upgrade -eq 1 ]; then
189-
echo "Updating Python requirements - 7/14" > /tmp/pynab.upgrade
213+
echo "Updating Python requirements - 8/15" > /tmp/pynab.upgrade
190214
fi
191215
# Start with wheel which is required to compile some of the other requirements
192216
venv/bin/pip install --no-cache-dir wheel
193217
venv/bin/pip install --no-cache-dir -r requirements.txt
194218

195219
if [ $makerfaire2018 -eq 0 ]; then
196220
if [ $upgrade -eq 1 ]; then
197-
echo "Updating NLU models - 8/14" > /tmp/pynab.upgrade
221+
echo "Updating NLU models - 9/15" > /tmp/pynab.upgrade
198222
fi
199223

200224
# maker faire card has no mic, no need to install snips
201225
if [ ! -d "venv/lib/python3.7/site-packages/snips_nlu_fr" ]; then
202-
echo "Downloading snips_nlu models for French"
226+
echo "Downloading Snips NLU models for French"
203227
venv/bin/python -m snips_nlu download fr
204228
fi
205229

206230
if [ ! -d "venv/lib/python3.7/site-packages/snips_nlu_en" ]; then
207-
echo "Downloading snips_nlu models for English"
231+
echo "Downloading Snips NLU models for English"
208232
venv/bin/python -m snips_nlu download en
209233
fi
210234

211-
echo "Compiling snips datasets"
235+
echo "Compiling Snips datasets"
212236
mkdir -p nabd/nlu
213237
venv/bin/python -m snips_nlu generate-dataset en */nlu/intent_en.yaml > nabd/nlu/nlu_dataset_en.json
214238
venv/bin/python -m snips_nlu generate-dataset fr */nlu/intent_fr.yaml > nabd/nlu/nlu_dataset_fr.json
215239

216-
echo "Persisting snips engines"
240+
echo "Persisting Snips engines"
217241
if [ -d nabd/nlu/engine_en ]; then
218242
rm -rf nabd/nlu/engine_en
219243
fi
@@ -245,7 +269,7 @@ fi
245269
sudo sed -e "s|/home/pi/pynab|${root_dir}|g" < nabweb/nginx-site.conf > /tmp/nginx-site.conf
246270
if [ $upgrade -eq 0 ]; then
247271
if [ ! -e '/etc/nginx/sites-enabled/pynab' ]; then
248-
echo "Installing nginx configuration file"
272+
echo "Installing Nginx configuration file"
249273
if [ -h '/etc/nginx/sites-enabled/default' ]; then
250274
sudo rm /etc/nginx/sites-enabled/default
251275
fi
@@ -255,15 +279,15 @@ if [ $upgrade -eq 0 ]; then
255279
fi
256280
else
257281
diff -q '/etc/nginx/sites-enabled/pynab' /tmp/nginx-site.conf >/dev/null || {
258-
echo "Updating nginx configuration file"
282+
echo "Updating Nginx configuration file"
259283
sudo mv /tmp/nginx-site.conf /etc/nginx/sites-enabled/pynab
260284
if [ $ci_chroot -eq 0 ]; then
261285
sudo systemctl restart nginx
262286
fi
263287
}
264288
fi
265289
else
266-
echo "Restarting Nginx - 9/14" > /tmp/pynab.upgrade
290+
echo "Restarting Nginx - 10/15" > /tmp/pynab.upgrade
267291
if [ -e '/etc/nginx/sites-enabled/pynab' ]; then
268292
sudo mv /tmp/nginx-site.conf /etc/nginx/sites-enabled/pynab
269293
sudo systemctl restart nginx
@@ -279,7 +303,7 @@ psql -U pynab -c '' 2>/dev/null || {
279303
}
280304

281305
if [ $upgrade -eq 1 ]; then
282-
echo "Updating data models - 10/14" > /tmp/pynab.upgrade
306+
echo "Updating data models - 11/15" > /tmp/pynab.upgrade
283307
fi
284308
venv/bin/python manage.py migrate
285309

@@ -288,7 +312,7 @@ all_locales="-l fr_FR -l de_DE -l en_US -l en_GB -l it_IT -l es_ES -l ja_jp -l p
288312
if [ $upgrade -eq 0 ]; then
289313
venv/bin/django-admin compilemessages ${all_locales}
290314
else
291-
echo "Updating localization messages - 11/14" > /tmp/pynab.upgrade
315+
echo "Updating localization messages - 12/15" > /tmp/pynab.upgrade
292316
for module in nab*/locale; do
293317
(
294318
cd `dirname ${module}`
@@ -312,7 +336,7 @@ fi
312336

313337
# copy service files
314338
if [ $upgrade -eq 1 ]; then
315-
echo "Installing service files - 12/14" > /tmp/pynab.upgrade
339+
echo "Installing service files - 13/15" > /tmp/pynab.upgrade
316340
fi
317341
for service_file in nabd/nabd.socket */*.service ; do
318342
name=`basename ${service_file}`
@@ -327,6 +351,7 @@ sudo chown root /lib/systemd/system-shutdown/nabboot.py
327351
sudo chmod +x /lib/systemd/system-shutdown/nabboot.py
328352

329353
# setup Pynab logs rotation
354+
echo "Setting up Pynab logs rotation"
330355
cat > '/tmp/pynab' <<- END
331356
/var/log/nab*.log {
332357
weekly
@@ -343,6 +368,7 @@ sudo chown root:root /etc/logrotate.d/pynab
343368

344369
# advertise rabbit on local network
345370
if [ ! -f "/etc/avahi/services/pynab.service" ]; then
371+
echo "Setting up Avahi service for Pynab"
346372
cat > '/tmp/pynab.service' <<- END
347373
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
348374
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
@@ -360,6 +386,7 @@ END
360386
sudo mv /tmp/pynab.service /etc/avahi/services/pynab.service
361387
fi
362388
if [ ! -f "/etc/avahi/services/nabblocky.service" ]; then
389+
echo "Setting up Avahi service for NabBlockly"
363390
cat > '/tmp/nabblocky.service' <<- END
364391
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
365392
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
@@ -378,14 +405,14 @@ END
378405
fi
379406

380407
if [ -e /tmp/pynab.upgrade.reboot ]; then
381-
echo "Upgrade requires reboot, rebooting now - 14/14" > /tmp/pynab.upgrade
408+
echo "Upgrade requires reboot, rebooting now - 15/15" > /tmp/pynab.upgrade
382409
sudo rm -f /tmp/pynab.upgrade
383410
sudo rm -f /tmp/pynab.upgrade.reboot
384411
sudo reboot
385412
else
386413
if [ $ci_chroot -eq 0 ]; then
387414
if [ $upgrade -eq 1 ]; then
388-
echo "Restarting services - 13/14" > /tmp/pynab.upgrade
415+
echo "Restarting services - 14/15" > /tmp/pynab.upgrade
389416
fi
390417
sudo systemctl restart logrotate.service || true
391418
sudo systemctl start nabd.socket
@@ -400,7 +427,7 @@ else
400427
done
401428

402429
if [ $upgrade -eq 1 ]; then
403-
echo "Restarting website - 14/14" > /tmp/pynab.upgrade
430+
echo "Restarting web site - 15/15" > /tmp/pynab.upgrade
404431
sudo systemctl restart nabweb.service
405432
else
406433
sudo systemctl start nabweb.service

nabweb/templates/nabweb/upgrade/index.html

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% extends 'nabweb/_base.html' %}
22
{% load i18n %}
3-
{% block subtitle %}{% trans "Home" %}{% endblock %}
3+
{% block subtitle %}{% trans "Upgrade" %}{% endblock %}
44
{% block content %}
55
<div class="modal" tabindex="-1" role="dialog" id="upgradeModal">
66
<div class="modal-dialog modal-dialog-centered" role="document">
@@ -70,6 +70,11 @@ <h5>{% trans "Current versions" %}</h5>
7070
{% else %}
7171
<div data-repository="nabblockly" class="async-repository-info"></div>
7272
{% endif %}
73+
{% if pynab_cli %}
74+
{% include "nabweb/upgrade/_repository.html" with repo=pynab_cli %}
75+
{% else %}
76+
<div data-repository="pynab_cli" class="async-repository-info"></div>
77+
{% endif %}
7378
</dl>
7479
<strong>{% trans "Last check:" %}</strong> {% blocktrans with last_check_since=last_check|timesince %}{{ last_check_since }} ago{% endblocktrans %}
7580
</div>

nabweb/views.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,13 +437,15 @@ class GitInfo:
437437
"ears_driver": "../tagtagtag-ears/",
438438
"rfid_driver": "../cr14/",
439439
"nabblockly": "nabblockly",
440+
"pynab_cli": "../pynab_cli/",
440441
}
441442
NAMES = {
442443
"pynab": "Pynab",
443444
"sound_driver": "Tagtagtag sound card driver",
444445
"ears_driver": "Ears driver",
445446
"rfid_driver": "RFID reader driver",
446447
"nabblockly": "NabBlockly",
448+
"pynab_cli": "Pynab CLI",
447449
}
448450

449451
@staticmethod

setup

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,14 @@ sudo -u ${owner} wget https://github.com/erlang/rebar3/releases/download/3.15.1/
229229
sudo apt-get install --no-install-recommends -y g++
230230
sudo -u ${owner} ./rebar3 release
231231

232+
echo "Installing Pynab CLI."
233+
sudo apt-get install --no-install-recommends -y netcat-openbsd
234+
cd ${home_dir}
235+
sudo -u ${owner} git clone --depth 1 -b release https://github.com/f-laurens/pynab_cli
236+
sudo -u ${owner} mkdir -p ${home_dir}/bin
237+
cd ${home_dir}/bin
238+
sudo -u ${owner} ln -fs ../pynab_cli/bin/* .
239+
232240
echo "Running Pynab install script."
233241
sudo apt-get install --no-install-recommends -y alsa-utils xz-utils avahi-daemon
234242
cd ${home_dir}/pynab

upgrade.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ case $step in
2828

2929
sudo -u ${owner} touch /tmp/pynab.upgrade
3030
sudo chown ${owner} /tmp/pynab.upgrade
31-
echo "Updating code - 1/?" > /tmp/pynab.upgrade
31+
echo "Updating Pynab - 1/?" > /tmp/pynab.upgrade
3232
cd ${root_dir}
3333
if [[ $EUID -ne ${ownerid} ]]; then
3434
sudo -u ${owner} git pull

0 commit comments

Comments
 (0)