-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathset_zone
executable file
·77 lines (68 loc) · 1.82 KB
/
set_zone
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
#!/bin/bash
#
# shellcheck disable=SC1090,SC2220,SC2207
ROON=/usr/local/Roon
ROONAPI=${ROON}/api
ROONCONF=${ROON}/etc/pyroonconf
SCRIPT="zone_command.py"
[ -f ${ROONAPI}/${SCRIPT} ] || {
echo "Roon Command Line scripts not installed. Missing ${ROONAPI}/$SCRIPT"
exit 1
}
cd ${ROONAPI} || exit 1
# Verify this is a valid zone name
[ "$1" ] || {
echo "No zone specified on command line. Exiting."
exit 1
}
MY_ZONE="$*"
# Use a Python virtual environment
[ -f ${ROON}/venv/bin/activate ] && source ${ROON}/venv/bin/activate
[[ ":$PATH:" == *":/usr/local/Roon/venv/bin:"* ]] || {
export PATH=/usr/local/Roon/venv/bin:${PATH}
}
have_python3=$(type -p python3)
if [ "${have_python3}" ]
then
ZONE=$(python3 $SCRIPT -c "verify" -z "$MY_ZONE")
else
ZONE=$(python $SCRIPT -c "verify" -z "$MY_ZONE")
fi
[ "$ZONE" ] || {
echo "No zone matching $MY_ZONE"
exit 1
}
# Check the global site directories
PYTHONUSERBASE=
if [ "${have_python3}" ]
then
SITES=($(python3 -c 'import site; print(site.getsitepackages())' | tr -d '[],'))
else
SITES=($(python -c 'import site; print(site.getsitepackages())' | tr -d '[],'))
fi
for site in ${SITES[@]}
do
site=$(echo "${site}" | sed -e "s/\'//g")
[ -d "${site}/roonapi" ] && {
PYTHONUSERBASE=$(echo "${site}" | awk -F "/lib/" ' { print $1 } ')
break
}
done
if [ -f $ROONCONF ]
then
grep -v ^ROON_ZONE $ROONCONF > /tmp/roonconf$$
echo "ROON_ZONE=\"$ZONE\"" >> /tmp/roonconf$$
cp /tmp/roonconf$$ $ROONCONF
rm -f /tmp/roonconf$$
[ "$PYTHONUSERBASE" ] && {
grep PYTHONUSERBASE $ROONCONF > /dev/null || {
echo "export PYTHONUSERBASE=$PYTHONUSERBASE" >> $ROONCONF
}
}
else
echo "ROON_ZONE=\"$ZONE\"" > $ROONCONF
[ "$PYTHONUSERBASE" ] && {
echo "export PYTHONUSERBASE=$PYTHONUSERBASE" >> $ROONCONF
}
fi
exit 0