Bug 10942: (follow-up) debconfing the update option
authorRobin Sheat <robin@catalyst.net.nz>
Wed, 12 Mar 2014 04:24:36 +0000 (17:24 +1300)
committerGalen Charlton <gmc@esilibrary.com>
Thu, 24 Apr 2014 12:49:32 +0000 (12:49 +0000)
This causes a question to be asked at installation time as to whether
translations should be updated or not. The answer is written to the
config file, and stored in debconf. Effort is taken to ensure that if
the admin changes the config file, the update will be picked up and
reflected in debconf (i.e. that the admin's decision is always the
correct one.)

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Fixed two typos that made it fail and it worked like a charm.

Tested like this:

- Install the package
=> no errors, the file is created, defaults to 'yes'
- Install a language (koha-translate --install es-ES)
- Re-install the package (simulating an upgrade)
=> es-ES gets updated
- Set preference to 'no'
- Re-install
=> es-ES doesn't get updated, the warning is printed correctly
- Installed a second language (koha-translate --install pt-BR)
- did all the tests again
=> Success

Note: on master there are obvious template translation warnings.
A copy of the generated package can be grabbed from:
http://es.koha-community.org/koha-common_3.15+20140312172225.af7c0a23_all.deb

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
debian/koha-common.config
debian/koha-common.postinst
debian/koha-common.templates
debian/templates/koha-common.conf

index 716119d..3f97df9 100755 (executable)
@@ -21,8 +21,26 @@ set -e
 
 . /usr/share/debconf/confmodule
 
+CONFIGFILE=/etc/koha/koha-common.conf
+
+if [ -e $CONFIGFILE ]; then
+    . $CONFIGFILE || true
+    # Put the current values into debconf
+    UPDATE="true"
+    if [ "$AUTOMATIC_TRANSLATIONS_UPDATE" = "no" ] ; then
+        UPDATE="false"
+    fi
+    db_set koha-common/automatically-update-translations "$UPDATE"
+else
+    # True is the default
+    db_set koha-common/automatically-update-translations true
+fi
+
 if dpkg --compare-versions "$2" lt-nl 3.4 ; then
     db_input high koha-common/3.2-3.4-upgrade-notice || true
 fi
-db_go
+
+db_input medium koha-common/automatically-update-translations || true
+
+db_go || true
 
index d061403..47acd42 100644 (file)
@@ -8,8 +8,9 @@ AUTOMATIC_TRANSLATIONS_UPDATE="yes"
 . /usr/share/debconf/confmodule
 
 # Read configuration variable file if it is present
-if [ -r /etc/koha/koha-common.conf ]; then
-    . /etc/koha/koha-common.conf
+CONFIG=/etc/koha/koha-common.conf
+if [ -r $CONFIG ]; then
+    . $CONFIG
 fi
 
 conf=/etc/mysql/koha-common.cnf
@@ -22,6 +23,37 @@ fi
 
 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
index f88449e..5576fe8 100644 (file)
@@ -8,3 +8,10 @@ Description: koha-common upgrade actions required
  should be largely operational during the process, but some things,
  particularly to do with items, may appear strange until the upgrade and
  re-index is complete.
+
+Template: koha-common/automatically-update-translations
+Type: boolean
+Default: true
+Description: automatically update translations
+  When Koha is upgraded, any existing translated templates can be regenerated
+  to keep everything in sync. Select "yes" if you want this.
index 331a893..b4e3db6 100644 (file)
@@ -14,4 +14,4 @@
 # Note: if you choose 'no' then you will have to issue
 #  $ koha-translate --update <lang_code>
 #
-#AUTOMATIC_TRANSLATIONS_UPDATE="yes"
+AUTOMATIC_TRANSLATIONS_UPDATE="yes"