Bug 12657 - remove references to prog and ccsr from the packages
[koha.git] / debian / scripts / koha-translate
blob88f90e8d05c28be7478cc3c61098cef1d0722fd4
1 #!/bin/sh
3 # koha-translate -- Manage Koha translations.
4 # Copyright 2013 Tomás Cohen Arazi
5 # Universidad Nacional de Córdoba
7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21 set -e
23 # include helper functions
24 if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then
25 . "/usr/share/koha/bin/koha-functions.sh"
26 else
27 echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2
28 exit 1
31 usage()
33 local scriptname=$(basename $0)
35 cat <<EOF
36 $scriptname
38 This script lets you manage your Koha templates translations.
40 Usage:
41 $scriptname --list|-l [--available|-a]
42 $scriptname --check|-c language_code
43 $scriptname --install|-i language_code
44 $scriptname --update|-u language_code
45 $scriptname --remove|-r language_code
46 $scriptname --help|-h
48 -l | --list List the installed or available (combined with -a)
49 language translations
50 -a | --available Used in conjunction with -l to show all languages
51 -c | --check Check that the language .PO files are present
52 -i | --install Install the specified language translations
53 -u | --update Update the specified language translations
54 -r | --remove Remove the specified language translations
55 -v | --verbose Be more verbose on the translation process
56 -h | --help Display this help message
58 EOF
61 list()
63 all=$1
65 if [ "$all" != "" ]; then
66 print_available
67 else
68 print_installed
72 print_available()
74 # Loop over only one opac theme
75 for i in $( ls $PO_DIR | grep opac-bootstrap ); do
76 echo `basename $i -i-opac-bootstrap.po` | \
77 grep -v -x -e en
78 done
81 print_installed()
83 ( ls -1 $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/bootstrap/ ; \
84 ls -1 $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/prog/ 2> /dev/null ) | \
85 sort | uniq | \
86 grep -v -e images -e itemtypeimg -x -e en -e css -e js -e less -e lib
89 install_lang()
91 local lang=$1
92 local translate_opts=""
94 if [ "$verbose" = "yes" ]; then
95 translate_opts="--verbose"
98 if [ "$lang" != "" ]; then
100 if [ "$lang" = "en" ]; then
101 die "Error: the default language (en) is already installed."
104 if print_available | grep -q $lang; then
105 if print_installed | grep -q $lang; then
106 die "Error: the selected language is already installed. Try --update if you want to re-install it."
107 else
108 # Check po files are present
109 check_lang_po_files $lang
110 env PERL5LIB="$KOHA_LIB_DIR:$TRANSLATE_DIR" KOHA_CONF="$KOHA_CONF_FILE"\
111 $PERL_CMD $TRANSLATE_DIR/translate install $translate_opts $lang
113 else
114 die "Error: the selected language is not currently available."
117 else
118 die "Error: no language code supplied."
122 update_lang()
124 lang=$1
126 if [ "$lang" != "" ]; then
128 if [ "$lang" = "en" ]; then
129 die "Error: the default language (en) cannot be updated."
132 if print_installed | grep -q $lang; then
133 # Check po files are present
134 check_lang_po_files $lang
135 remove_lang $lang
136 install_lang $lang
137 else
138 die "Error: the selected language is not currently installed. Try --install."
140 else
141 die "Error: no language code supplied."
145 remove_lang()
147 lang=$1
149 if [ "$lang" != "" ]; then
151 if [ "$lang" = "en" ]; then
152 die "Error: the default language (en) cannot be removed."
155 if print_installed | grep -q $lang; then
156 rm -rf $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/prog/$lang
157 rm -rf $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/ccsr/$lang
158 rm -rf $KOHA_INSTALL_DIR/opac/htdocs/opac-tmpl/bootstrap/$lang
159 rm -rf $KOHA_INSTALL_DIR/intranet/htdocs/intranet-tmpl/prog/$lang
160 else
161 die "Error: the selected language is not already installed."
163 else
164 die "Error: no language code supplied."
168 check_lang_po_files()
170 lang=$1
172 po_files="$PO_DIR/$lang-opac-bootstrap.po
173 $PO_DIR/$lang-pref.po"
175 if [ "$lang" != "" ]; then
177 for po_file in $po_files; do
178 if [ ! -f $po_file ]; then
179 die "Error: $po_file not found."
181 done
182 else
183 die "Error: no language code supplied."
187 set_action()
189 if [ "$op" = "" ]; then
190 op=$1
191 else
192 die "Error: only one action can be specified."
196 # Global PATH variables
197 KOHA_INSTALL_DIR="/usr/share/koha"
198 KOHA_LIB_DIR="/usr/share/koha/lib"
199 KOHA_CONF_FILE="/etc/koha/koha-conf-site.xml.in"
200 TRANSLATE_DIR="$KOHA_INSTALL_DIR/misc/translator"
201 PO_DIR="$TRANSLATE_DIR/po"
202 PERL_CMD=`which perl`
204 # Control variables
205 list_all=""
206 op=""
207 language=""
208 verbose="no"
210 # We accept at most 2 parameters
211 [ $# -ge 1 ] && [ $# -le 4 ] || ( usage ; die "Error: wrong parameters" )
213 # Read parameters
214 while [ $# -gt 0 ]; do
216 case "$1" in
217 -h|--help)
218 op="help"
219 break ;;
220 -c|--check)
221 set_action "check"
222 shift ;;
223 -i|--install)
224 set_action "install"
225 shift ;;
226 -u|--update)
227 set_action "update"
228 shift ;;
229 -r|--remove)
230 set_action "remove"
231 shift ;;
232 -l|--list)
233 set_action "list"
234 shift ;;
235 -a|--available)
236 list_all=1
237 shift ;;
238 -v|--verbose)
239 verbose="yes"
240 shift ;;
242 usage
243 die "Error: unknown parameter $1." ;;
245 language=$1
246 shift ;;
247 esac
249 done
251 # Process the requested actions
252 case $op in
253 "help")
254 usage ;;
255 "list")
256 list $list_all ;;
257 "install")
258 install_lang $language ;;
259 "update")
260 update_lang $language ;;
261 "remove")
262 remove_lang $language ;;
263 "check")
264 check_lang_po_files $language ;;
266 usage
267 die "Error: wrong parameters..." ;;
268 esac
270 exit 0