Tomas Cohen Arazi
b46e47840a
If there are no instances already created on install/upgrade, the koha-common.postinst script hungs in the absence of files to fix and keeps waiting for user input. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
145 lines
5.2 KiB
Bash
145 lines
5.2 KiB
Bash
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
# Default to "yes"
|
|
AUTOMATIC_TRANSLATIONS_UPDATE="yes"
|
|
|
|
. /usr/share/debconf/confmodule
|
|
|
|
# Read configuration variable file if it is present
|
|
CONFIG=/etc/koha/koha-common.conf
|
|
if [ -r $CONFIG ]; then
|
|
. $CONFIG
|
|
fi
|
|
|
|
conf=/etc/mysql/koha-common.cnf
|
|
if [ ! -e "$conf" ] && [ ! -L "$conf" ]
|
|
then
|
|
ln -s debian.cnf "$conf"
|
|
fi
|
|
|
|
#DEBHELPER#
|
|
|
|
koha-upgrade-schema $(koha-list)
|
|
|
|
# Generate a config file if one doesn't exist already
|
|
if [ ! -e $CONFIG ]; then
|
|
cat <<EOF > $CONFIG
|
|
## Automatic template translation update
|
|
#
|
|
# This variable controls whether template translations should
|
|
# be updated automatically on koha-common package upgrades.
|
|
# Options: 'yes' (default)
|
|
# 'no'
|
|
# Note: if you choose 'no' then you will have to issue
|
|
# $ koha-translate --update <lang_code>
|
|
#
|
|
AUTOMATIC_TRANSLATIONS_UPDATE="yes"
|
|
EOF
|
|
fi
|
|
|
|
# Substitute the values from debconf into the file.
|
|
db_get koha-common/automatically-update-translations
|
|
UPDATE="$RET"
|
|
if [ "$UPDATE" = "false" ]; then
|
|
UPDATE="no"
|
|
else
|
|
UPDATE="yes"
|
|
fi
|
|
# In case they were removed/commented out, we add it in.
|
|
grep -Eq '^ *AUTOMATIC_TRANSLATIONS_UPDATE=' $CONFIG || \
|
|
echo "AUTOMATIC_TRANSLATIONS_UPDATE=" >> $CONFIG
|
|
|
|
sed -e "s/^ *AUTOMATIC_TRANSLATIONS_UPDATE=.*/AUTOMATIC_TRANSLATIONS_UPDATE=\"$UPDATE\"/" < $CONFIG > $CONFIG.tmp
|
|
mv -f $CONFIG.tmp $CONFIG
|
|
|
|
if [ "$AUTOMATIC_TRANSLATIONS_UPDATE" = "yes" ]; then
|
|
for lang in $(koha-translate --list | grep -v -x "en"); do
|
|
if koha-translate --update $lang; then
|
|
echo "Updated the $lang translations."
|
|
else
|
|
cat <<EOF >&2
|
|
ERROR: an error was found when updating '$lang' translations. Please manually
|
|
run 'koha-translate --update $lang'. Run man koha-translate for more options.
|
|
EOF
|
|
fi
|
|
done
|
|
else
|
|
# no auto-update, check update needed and warn if needed
|
|
if koha-translate --list | grep -v -q -x "en"; then
|
|
# translations installed, update needed
|
|
cat <<EOF >&2
|
|
Warning: template translations are not set to be automatically updated.
|
|
Please manually run 'koha-translate --update lang_code' to update them.
|
|
|
|
You can run 'koha-translate --list' to get a list of the installed translations codes.
|
|
EOF
|
|
fi
|
|
fi
|
|
|
|
# Check if we need to rename the Apache vhost files
|
|
RENAME_APACHE_FILES="no"
|
|
for vhost in $(koha-list); do
|
|
if [ -f "/etc/apache2/sites-available/$vhost" ] && \
|
|
[ ! -f "/etc/apache2/sites-available/$vhost.conf" ]; then
|
|
RENAME_APACHE_FILES="yes"
|
|
break # at least one, trigger renaming
|
|
fi
|
|
done
|
|
|
|
if [ "$RENAME_APACHE_FILES" = "yes" ]; then
|
|
# If the user agreed we now rename their Apache files
|
|
db_get koha-common/rename-apache-vhost-files
|
|
if [ "$RET" = "false" ]; then
|
|
# We're not renaming the files, just print a warning
|
|
cat <<EOF >&2
|
|
Warning: you have chosen not to migrate your Apache virtual hosts files to the
|
|
Apache 2.4 naming schema. You can do it manually by running this for each
|
|
Koha instance:
|
|
|
|
$ sudo a2dissite instance
|
|
$ sudo mv /etc/apache2/sites-available/instance \
|
|
/etc/apache2/sites-available/instance.conf
|
|
$ sudo a2ensite instance
|
|
EOF
|
|
else
|
|
# We have to rename the Apache files
|
|
for site in $(koha-list); do
|
|
ENABLE_VHOST="yes"
|
|
if [ -f "/etc/apache2/sites-available/$site" ] && \
|
|
[ ! -f "/etc/apache2/sites-available/$site.conf" ]; then
|
|
if [ ! -f "/etc/apache2/sites-enabled/$site" ]; then
|
|
ENABLE_VHOST="no"
|
|
fi
|
|
a2dissite $site > /dev/null 2>&1 || true
|
|
rm -f "/etc/apache2/sites-enabled/$site"
|
|
# Rename the vhost definition files
|
|
mv "/etc/apache2/sites-available/$site" \
|
|
"/etc/apache2/sites-available/$site.conf"
|
|
|
|
if [ "$ENABLE_VHOST" = "yes" ]; then
|
|
if ! {
|
|
a2ensite "$site" > /dev/null 2>&1 ||
|
|
a2ensite "${site}.conf" > /dev/null 2>&1
|
|
}; then
|
|
echo "Warning: problem enabling $site in Apache" >&2
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
fi
|
|
|
|
# Bug 14106 - fix the modulePath of existing koha instances so that it'll
|
|
# continue to work. This will only patch the files if the exact original string
|
|
# that we're fixing them from is there, so we just run it every time. Maybe
|
|
# in many years time we can get rid of this, when no one will be running
|
|
# Koha < 3.20.
|
|
for zfile in $( find /etc/koha/sites -name zebra-authorities.cfg -or -name zebra-authorities-dom.cfg -or -name zebra-biblios.cfg -or -name zebra-biblios-dom.cfg ); do
|
|
perl -p -i -e 's{^modulePath: /usr/lib/idzebra-2.0/modules$}{modulePath: /usr/lib/idzebra-2.0/modules:/usr/lib/x86_64-linux-gnu/idzebra-2.0/modules:/usr/lib/i386-linux-gnu/idzebra-2.0/modules:/usr/lib/aarch64-linux-gnu/idzebra-2.0/modules:/usr/lib/arm-linux-gnueabi/idzebra-2.0/modules:/usr/lib/arm-linux-gnueabihf/idzebra-2.0/modules:/usr/lib/mips-linux-gnu/idzebra-2.0/modules:/usr/lib/mipsel-linux-gnu/idzebra-2.0/modules:/usr/lib/powerpc-linux-gnu/idzebra-2.0/modules:/usr/lib/powerpc64le-linux-gnu/idzebra-2.0/modules:/usr/lib/s390x-linux-gnu/idzebra-2.0/modules}' $zfile
|
|
done
|
|
|
|
db_stop
|
|
|
|
exit 0
|