Bug 32612: (QA follow-up) Remove worker.log
[srvgit] / debian / scripts / koha-translate
index d0b3a2f..b9a8ec8 100755 (executable)
 # 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
 
+# include helper functions
+if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then
+    . "/usr/share/koha/bin/koha-functions.sh"
+else
+    echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2
+    exit 1
+fi
+
 usage()
 {
     local scriptname=$(basename $0)
@@ -30,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)
@@ -44,17 +54,13 @@ $scriptname --help|-h
     -i | --install        Install the specified language translations
     -u | --update         Update the specified language translations
     -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
 }
 
-die()
-{
-    echo "$@" 1>&2
-    exit 1
-}
-
 list()
 {
     all=$1
@@ -69,20 +75,28 @@ list()
 print_available()
 {
     # Loop over only one opac theme
-    for i in $( ls $PO_DIR | grep opac-t-prog ); do
-        echo `basename $i -i-opac-t-prog-v-3006000.po`
+    for i in $( ls $PO_DIR | grep opac-bootstrap ); do
+        echo `basename $i -opac-bootstrap.po` | \
+            grep -v -x -e en
     done
 }
 
 print_installed()
 {
-    ls $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/prog/ | \
-        grep -v -e images -e itemtypeimg
+    ( 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
 }
 
 install_lang()
 {
-    lang=$1
+    local lang=$1
+    local translate_opts=""
+
+    if [ "$verbose" = "yes" ]; then
+        translate_opts="--verbose"
+    fi
 
     if [ "$lang" != "" ]; then
 
@@ -96,8 +110,9 @@ 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"\
-                    $PERL_CMD $TRANSLATE_DIR/translate install $lang
+                env PERL5LIB="$PERL5LIB:$TRANSLATE_DIR" \
+                    KOHA_CONF="$KOHA_CONF" \
+                    $PERL_CMD $TRANSLATE_DIR/translate install $translate_opts $lang
             fi
         else
             die "Error: the selected language is not currently available."
@@ -142,11 +157,10 @@ 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/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 already installed."
+            die "Error: the selected language is not installed."
         fi
     else
         die "Error: no language code supplied."
@@ -157,10 +171,11 @@ check_lang_po_files()
 {
     lang=$1
 
-    po_files="$PO_DIR/$lang-i-opac-t-prog-v-3006000.po
-              $PO_DIR/$lang-opac-ccsr.po
-              $PO_DIR/$lang-i-staff-t-prog-v-3006000.po
-              $PO_DIR/$lang-pref.po"
+    po_files="$PO_DIR/$lang-marc-MARC21.po
+              $PO_DIR/$lang-marc-UNIMARC.po
+              $PO_DIR/$lang-opac-bootstrap.po
+              $PO_DIR/$lang-pref.po
+              $PO_DIR/$lang-staff-prog.po"
 
     if [ "$lang" != "" ]; then
 
@@ -183,21 +198,56 @@ 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 is_instance $1; then
+        dev=$1
+    else
+        die "Error: Invalid instance name $1"
+    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"
+}
+
+flush_cache()
+{
+    if [ "$dev" = "" ]; then
+        koha-foreach --enabled "$KOHA_HOME/bin/clear_cache.pl"
+    else
+        koha-shell $dev -c "$KOHA_HOME/misc/bin/clear_cache.pl"
+    fi
+}
 
 # Control variables
 list_all=""
 op=""
 language=""
+verbose="no"
+dev=""
 
-# We accept at most 2 parameters
-[ $# -ge 1 ] && [ $# -le 3 ] || ( usage ; die "Error: wrong parameters" )
+# We accept at most 4 parameters
+[ $# -ge 1 ] && [ $# -le 4 ] || ( usage ; die "Error: wrong parameters" )
 
 # Read parameters
 while [ $# -gt 0 ]; do
@@ -224,6 +274,16 @@ while [ $# -gt 0 ]; do
         -a|--available)
             list_all=1
             shift ;;
+        -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." ;;
@@ -234,6 +294,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")
@@ -241,11 +306,15 @@ case $op in
     "list")
         list $list_all ;;
     "install")
-        install_lang $language ;;
+        install_lang $language
+        flush_cache
+        ;;
     "update")
         update_lang $language ;;
     "remove")
-        remove_lang $language ;;
+        remove_lang $language
+        flush_cache
+        ;;
     "check")
         check_lang_po_files $language ;;
     *)