/
update_zynthian_data.sh
executable file
·154 lines (136 loc) · 5.54 KB
/
update_zynthian_data.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
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/bash
#******************************************************************************
# ZYNTHIAN PROJECT: Update Zynthian Data
#
# + Update the Zynthian Data from repositories.
# + Perform some extra fixes
#
# Copyright (C) 2015-2017 Fernando Moyano <jofemodo@zynthian.org>
#
#******************************************************************************
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# For a full copy of the GNU General Public License see the LICENSE.txt file.
# ****************************************************************************
#------------------------------------------------------------------------------
# Load Environment Variables
#------------------------------------------------------------------------------
source "$ZYNTHIAN_SYS_DIR/scripts/zynthian_envars_extended.sh"
source "$ZYNTHIAN_SYS_DIR/scripts/delayed_action_flags.sh"
#------------------------------------------------------------------------------
# Pull from repositories ...
#------------------------------------------------------------------------------
echo "Updating zynthian-data..."
cd "$ZYNTHIAN_DATA_DIR"
branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
git checkout .
git clean -f
if [ "$RESET_ZYNTHIAN_REPOSITORIES" == "1" ]; then
git merge --abort
git fetch
git reset --hard origin/$branch
else
git pull
fi
#------------------------------------------------------------------------------
# Fixing some paths & locations ...
#------------------------------------------------------------------------------
# Fix zynseq data directories
if [ ! -d "$ZYNTHIAN_MY_DATA_DIR/zynseq" ]; then
mkdir "$ZYNTHIAN_MY_DATA_DIR/zynseq"
mkdir "$ZYNTHIAN_MY_DATA_DIR/zynseq/patterns"
mkdir "$ZYNTHIAN_MY_DATA_DIR/zynseq/tracks"
mkdir "$ZYNTHIAN_MY_DATA_DIR/zynseq/sequences"
mkdir "$ZYNTHIAN_MY_DATA_DIR/zynseq/scenes"
fi
# Create preset-favorites if needed
if [ ! -d "$ZYNTHIAN_MY_DATA_DIR/preset-favorites" ]; then
mkdir "$ZYNTHIAN_MY_DATA_DIR/preset-favorites"
fi
# Create presets directory for SysEx if needed
if [ ! -d "$ZYNTHIAN_MY_DATA_DIR/presets/sysex" ]; then
mkdir "$ZYNTHIAN_MY_DATA_DIR/presets/sysex"
fi
# Fix ZynAddSubFX config & presets directories
if [ -L "/usr/local/share/zynaddsubfx" ]; then
rm -f "/usr/local/share/zynaddsubfx"
fi
if [ -L "$ZYNTHIAN_MY_DATA_DIR/zynbanks" ]; then
rm -f "$ZYNTHIAN_MY_DATA_DIR/zynbanks"
fi
if [ -d "$ZYNTHIAN_MY_DATA_DIR/presets/zynaddsubfx/XMZ" ]; then
rm -rf "$ZYNTHIAN_MY_DATA_DIR/presets/zynaddsubfx/XMZ"
fi
if [ ! -d "$ZYNTHIAN_MY_DATA_DIR/presets/zynaddsubfx/banks" ]; then
mkdir "$ZYNTHIAN_MY_DATA_DIR/presets/zynaddsubfx/banks"
fi
if [ ! -d "$ZYNTHIAN_MY_DATA_DIR/presets/zynaddsubfx/presets" ]; then
mkdir "$ZYNTHIAN_MY_DATA_DIR/presets/zynaddsubfx/presets"
fi
# Fix/Setup MOD-UI pedalboards directory: create dirs & symlinks, copy pedalboards ...
if [ -d "$ZYNTHIAN_MY_DATA_DIR/mod-pedalboards" ]; then
mkdir "$ZYNTHIAN_MY_DATA_DIR/presets/mod-ui"
mv "$ZYNTHIAN_MY_DATA_DIR/mod-pedalboards" "$ZYNTHIAN_MY_DATA_DIR/presets/mod-ui/pedalboards"
fi
cp -na $ZYNTHIAN_DATA_DIR/presets/mod-ui/pedalboards/*.pedalboard $ZYNTHIAN_MY_DATA_DIR/presets/mod-ui/pedalboards
rm -f "/root/.pedalboards"
ln -s "$ZYNTHIAN_MY_DATA_DIR/presets/mod-ui/pedalboards" "/root/.pedalboards"
# Fix/Setup MOD-UI lv2 presets directory
if [ -d "/root/.lv2" ] && [ ! -L "/root/.lv2" ]; then
mv /root/.lv2/* $ZYNTHIAN_MY_DATA_DIR/presets/lv2 2>/dev/null; true
rm -rf "/root/.lv2"
ln -s "$ZYNTHIAN_MY_DATA_DIR/presets/lv2" "/root/.lv2"
fi
# Fix/Setup setbfree user config directory
if [ -d "$ZYNTHIAN_MY_DATA_DIR/setbfree" ]; then
mv "$ZYNTHIAN_MY_DATA_DIR/setbfree" $ZYNTHIAN_CONFIG_DIR
fi
# Fix LV2 Plugins
if [ -d "$ZYNTHIAN_PLUGINS_DIR/lv2/b_whirl" ]; then
rm -rf "$ZYNTHIAN_PLUGINS_DIR/lv2/b_whirl.lv2"
mv "$ZYNTHIAN_PLUGINS_DIR/lv2/b_whirl" "$ZYNTHIAN_PLUGINS_DIR/lv2/b_whirl.lv2"
fi
if [ -d "$ZYNTHIAN_PLUGINS_DIR/lv2/b_synth" ]; then
rm -rf "$ZYNTHIAN_PLUGINS_DIR/lv2/b_synth.lv2"
mv "$ZYNTHIAN_PLUGINS_DIR/lv2/b_synth" "$ZYNTHIAN_PLUGINS_DIR/lv2/b_synth.lv2"
fi
# Fix LV2 Presets
if [ -d "$ZYNTHIAN_PLUGINS_DIR/lv2/amsynth.lv2" ]; then
sed -i -- 's/a pset\:bank/a pset\:Bank/g' $ZYNTHIAN_PLUGINS_DIR/lv2/amsynth.lv2/*.ttl
fi
if [ -d "$ZYNTHIAN_PLUGINS_DIR/lv2/dexed.lv2" ]; then
sed -i -- 's/a pset\:bank/a pset\:Bank/g' $ZYNTHIAN_PLUGINS_DIR/lv2/dexed.lv2/*.ttl
fi
sed -i -- 's/a pset\:bank/a pset\:Bank/g' $ZYNTHIAN_MY_DATA_DIR/presets/lv2/*/*.ttl
# Link FluidPlug SF2s for using normally with FluidSynth
cd $ZYNTHIAN_PLUGINS_DIR/lv2
for d in AirFont320* AVL_Drumkits_Perc* Black_Pearl* Fluid* Red_Zeppelin*; do
name=${d%.*}
dest=$ZYNTHIAN_DATA_DIR/soundfonts/sf2/$name.sf2
if [[ ( ! -L "$dest") && ( $name != "FluidGM" ) ]]; then
echo "Linking $name.sf2 ..."
ln -s "$ZYNTHIAN_PLUGINS_DIR/lv2/$d/FluidPlug.sf2" "$dest"
fi
done
# Copy custom TTL files
cd $ZYNTHIAN_DATA_DIR/lv2-custom
for d in */; do
if [ -d "/usr/lib/lv2/$d" ]; then
cp -a $d/* /usr/lib/lv2/$d
elif [ -d "/usr/local/lib/lv2/$d" ]; then
cp -a $d/* /usr/local/lib/lv2/$d
elif [ -d "$ZYNTHIAN_PLUGINS_DIR/lv2/$d" ]; then
cp -a $d/* $ZYNTHIAN_PLUGINS_DIR/lv2/$d
fi
done
run_flag_actions
#------------------------------------------------------------------------------