From cd7944eef85beaf134959e51004a6ed8fb510eed Mon Sep 17 00:00:00 2001
From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Date: Thu, 16 Jun 2016 10:38:54 +0200
Subject: [PATCH] Bug 16749: Adjustments for koha-translate
Content-Type: text/plain; charset=utf-8

[AMENDED February 10, 2017]

[1] Added reading /etc/default/koha-common as in the other debian scripts.
    We need it for KOHA_HOME.
[2] Add a -d|--dev parameter for dev installs.
[3] No hardcoded PERL5LIB or KOHA_INSTALL_DIR (KOHA_HOME).
    They are read from default file or set by adjust_paths_dev_install.
[4] Adjust template paths for dev installs: OPAC_TMPL, INTRANET_TMPL.
[5] Remove references to obsolete themes ccsr and prog.

Test plan:
[1] Regular package install:
    Copy koha-translate to /usr/sbin.
    Run koha-translate -l to show installed languages.
    Run koha-translate -l -a to show available languages.
    Add a language: koha-translate -i nl-NL.
    Check template folders in regular location (/usr/share/koha/...)
    Remove a language: koha-translate -r nl-NL. Check again.
[2] Dev install or kohadevbox:
    Copy koha-translate to /usr/sbin.
    If needed, add the <dev_install> line to koha-conf.xml.
    Run koha-translate -l -d yourinstance to show installed languages.
    (Note: You only see the languages installed in this instance.)
    Add a language: koha-translate -i nl-NL -d yourinstance.
    Check template folders in the clone.
    Remove a language: koha-translate -r nl-NL -d yourinstance.

    Note: Make sure you have sufficient file permissions for the kohaclone
    files and koha-conf.xml. On kohadevbox you might need to run sudo
    koha-translate within the the vagrant user context.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Tested on Jessie (Debian VM and Kohadevbox)
---
 debian/scripts/koha-translate | 79 ++++++++++++++++++++++++++++++++-----------
 1 file changed, 59 insertions(+), 20 deletions(-)

diff --git a/debian/scripts/koha-translate b/debian/scripts/koha-translate
index af6ac43..2d72c6e 100755
--- a/debian/scripts/koha-translate
+++ b/debian/scripts/koha-translate
@@ -17,6 +17,8 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+# Read configuration variable file if it is present
+[ -r /etc/default/koha-common ] && . /etc/default/koha-common
 
 set -e
 
@@ -38,11 +40,11 @@ $scriptname
 This script lets you manage your Koha templates translations.
 
 Usage:
-$scriptname --list|-l [--available|-a]
-$scriptname --check|-c language_code
-$scriptname --install|-i language_code
-$scriptname --update|-u language_code
-$scriptname --remove|-r language_code
+$scriptname --list|-l [--available|-a]  [-d|--dev instance]
+$scriptname --check|-c language_code]   [-d|--dev instance]
+$scriptname --install|-i language_code] [-d|--dev instance]
+$scriptname --update|-u language_code]  [-d|--dev instance]
+$scriptname --remove|-r language_code]  [-d|--dev instance]
 $scriptname --help|-h
 
     -l | --list           List the installed or available (combined with -a)
@@ -54,6 +56,7 @@ $scriptname --help|-h
     -r | --remove         Remove the specified language translations
     -v | --verbose        Be more verbose on the translation process
     -h | --help           Display this help message
+    -d | --dev            Limit actions to a specific dev instance
 
 EOF
 }
@@ -80,8 +83,8 @@ print_available()
 
 print_installed()
 {
-    ( ls -1 $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/bootstrap/ ; \
-        ls -1 $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/prog/ 2> /dev/null ) | \
+    ( ls -1 $KOHA_HOME/$OPAC_TMPL/bootstrap/ ; \
+        ls -1 $KOHA_HOME/$OPAC_TMPL/prog/ 2> /dev/null ) | \
         sort | uniq | \
         grep -v -e images -e itemtypeimg -x -e en -e css -e js -e less -e lib
 }
@@ -107,7 +110,8 @@ install_lang()
             else
                 # Check po files are present
                 check_lang_po_files $lang
-                env PERL5LIB="$KOHA_LIB_DIR:$TRANSLATE_DIR" KOHA_CONF="$KOHA_CONF_FILE"\
+                env PERL5LIB="$PERL5LIB:$TRANSLATE_DIR" \
+                    KOHA_CONF="$KOHA_CONF" \
                     $PERL_CMD $TRANSLATE_DIR/translate install $translate_opts $lang
             fi
         else
@@ -153,10 +157,8 @@ remove_lang()
         fi
 
         if print_installed | grep -q $lang; then
-            rm -rf $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/prog/$lang
-            rm -rf $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/ccsr/$lang
-            rm -rf $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/bootstrap/$lang
-            rm -rf $KOHA_INSTALL_DIR/intranet/htdocs/intranet-tmpl/prog/$lang
+            rm -rf $KOHA_HOME/$OPAC_TMPL/bootstrap/$lang
+            rm -rf $KOHA_HOME/$INTRANET_TMPL/prog/$lang
         else
             die "Error: the selected language is not installed."
         fi
@@ -198,21 +200,46 @@ set_action()
     fi
 }
 
-# Global PATH variables
-KOHA_INSTALL_DIR="/usr/share/koha"
-KOHA_LIB_DIR="/usr/share/koha/lib"
-KOHA_CONF_FILE="/etc/koha/koha-conf-site.xml.in"
-TRANSLATE_DIR="$KOHA_INSTALL_DIR/misc/translator"
-PO_DIR="$TRANSLATE_DIR/po"
-PERL_CMD=`which perl`
+set_dev()
+{
+    if echo $1 | egrep -q "^[^-]"; then
+        dev=$1
+    else
+        die "Error: dev parameter with wrong instance name"
+    fi
+}
+
+check_koha_conf()
+{
+    if [ "$dev" != "" ]; then
+        KOHA_CONF=/etc/koha/sites/$dev/koha-conf.xml
+    elif [ -z $KOHA_CONF ]; then
+        KOHA_CONF=/etc/koha/koha-conf-site.xml.in
+    fi
+}
+
+init_template_paths()
+{
+    # Template paths
+    if [ "$dev" = "" ]; then
+        OPAC_TMPL=opac/htdocs/opac-tmpl
+        INTRANET_TMPL=intranet/htdocs/intranet-tmpl
+    else
+        OPAC_TMPL=koha-tmpl/opac-tmpl
+        INTRANET_TMPL=koha-tmpl/intranet-tmpl
+    fi
+    TRANSLATE_DIR="$KOHA_HOME/misc/translator"
+    PO_DIR="$TRANSLATE_DIR/po"
+}
 
 # Control variables
 list_all=""
 op=""
 language=""
 verbose="no"
+dev=""
 
-# We accept at most 2 parameters
+# We accept at most 4 parameters
 [ $# -ge 1 ] && [ $# -le 4 ] || ( usage ; die "Error: wrong parameters" )
 
 # Read parameters
@@ -243,6 +270,13 @@ while [ $# -gt 0 ]; do
         -v|--verbose)
             verbose="yes"
             shift ;;
+        -d|--dev)
+            if [ $# -lt 2 ]; then
+                die "Error: dev parameter without instance"
+            fi
+            shift
+            set_dev $1
+            shift ;;
         -*)
             usage
             die "Error: unknown parameter $1." ;;
@@ -253,6 +287,11 @@ while [ $# -gt 0 ]; do
 
 done
 
+if [ "$dev" != "" ]; then adjust_paths_dev_install $dev; fi
+check_koha_conf
+init_template_paths
+PERL_CMD=`which perl`
+
 # Process the requested actions
 case $op in
     "help")
-- 
2.1.4