Bug 20525: Add --timezone switch to koha-create
authorTomas Cohen Arazi <tomascohen@theke.io>
Thu, 5 Apr 2018 14:07:30 +0000 (11:07 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 8 May 2018 15:14:46 +0000 (12:14 -0300)
This patch adds a --timezone switch to koha-create so the timezone can
be set on creation time. It defaults to empty (i.e. using the server's
local time).

To test:
- Create an instance:
  $ sudo koha-create --create-db timezone1
=> SUCCESS: /etc/koha/sites/timezone1/koha-conf.xml contains an empty
<timezone> entry.
- Apply this patch
- Run:
  $ perl misc4dev/cp_debian_files.pl
- Create a new instance:
  $ sudo koha-create --create-db timezone2
=> SUCCESS: /etc/koha/sites/timezone2/koha-conf.xml contains an empty
<timezone> entry (i.e. the current behaviour is preserved).
- Create a new instance:
  $ sudo koha-create --create-db --timezone Your/Timezone timezone3
=> SUCCESS: /etc/koha/sites/timezone3/koha-conf.xml contains
    <timezone>Your/Timezone</timezone> (i.e. introduced behaviour works)
- Sign off :-D

Sponsored-by: ByWater Solutions
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
debian/docs/koha-create.xml
debian/scripts/koha-create
debian/templates/koha-conf-site.xml.in

index d4bbadb..77a3e7d 100644 (file)
@@ -40,6 +40,7 @@
       <arg><option>--enable-sru</option></arg>
       <arg><option>--sru-port</option> port</arg>
       <arg><option>--template-cache-dir</option> directory</arg>
+      <arg><option>--timezone</option> time/zone</arg>
       <arg><option>--upload-path</option> directory</arg>
       <arg><option>--letsencrypt</option></arg>
       <arg><option>--help</option>|<option>-h</option></arg>
       </listitem>
     </varlistentry>
 
+    <varlistentry>
+      <term><option>--timezone</option></term>
+      <listitem>
+        <para>Specify a <option>timezone</option> for the created instance. e.g. America/Argentina</para>
+      </listitem>
+    </varlistentry>
+
     <varlistentry>
       <term><option>--upload-path</option></term>
       <listitem>
index e0fd5cd..65d62bd 100755 (executable)
@@ -71,6 +71,7 @@ Options:
                             conjunction with --defaultsql and --populate-db.
   --template-cache-dir      Set a user defined template_cache_dir. It defaults to
                             /var/cache/koha/<instance>/templates
+  --timezone time/zone      Specify a timezone. e.g. America/Argentina
   --upload-path dir         Set a user defined upload_path. It defaults to
                             /var/lib/koha/<instance>/uploads
   --letsencrypt             Set up a https-only site with letsencrypt certificates
@@ -115,6 +116,7 @@ generate_config_file() {
         -e "s/__UNIXUSER__/$username/g" \
         -e "s/__UNIXGROUP__/$username/g" \
         -e "s#__TEMPLATE_CACHE_DIR__#$TEMPLATE_CACHE_DIR#g" \
+        -e "s#__TIMEZONE__#$TIMEZONE#g" \
         -e "s#__UPLOAD_PATH__#$UPLOAD_PATH#g" \
         -e "s/__LOG_DIR__/\/var\/log\/koha\/$name/g" \
         -e "s/__PLUGINS_DIR__/\/var\/lib\/koha\/$name\/plugins/g" \
@@ -413,6 +415,8 @@ DEFAULT_MEMCACHED_PREFIX="koha_"
 UPLOAD_PATH_BASE="/var/lib/koha"
 UPLOAD_DIR="uploads"
 UPLOAD_PATH=""
+# timezone defaults to empty
+TIMEZONE=""
 # cache base dir
 CACHE_DIR_BASE="/var/cache/koha"
 # Generate a randomizaed API secret
@@ -443,7 +447,7 @@ fi
 
 [ $# -ge 1 ] && [ $# -le 16 ] || ( usage ; die "Error: wrong parameters" )
 
-TEMP=`getopt -o chrpm:l:d:f:b:a: -l create-db,request-db,populate-db,use-db,enable-sru,sru-port:,help,marcflavor:,auth-idx:,biblio-idx:,zebralang:,defaultsql:,configfile:,passwdfile:,dbhost:,database:,adminuser:,memcached-servers:,memcached-prefix:,template-cache-dir:,upload-path:,letsencrypt, \
+TEMP=`getopt -o chrpm:l:d:f:b:a: -l create-db,request-db,populate-db,use-db,enable-sru,sru-port:,help,marcflavor:,auth-idx:,biblio-idx:,zebralang:,defaultsql:,configfile:,passwdfile:,dbhost:,database:,adminuser:,memcached-servers:,memcached-prefix:,template-cache-dir:,timezone:,upload-path:,letsencrypt, \
      -n "$0" -- "$@"`
 
 # Note the quotes around `$TEMP': they are essential!
@@ -461,6 +465,7 @@ CLO_MEMCACHED_PREFIX=""
 CLO_UPLOAD_PATH=""
 CLO_LETSENCRYPT=""
 CLO_TEMPLATE_CACHE_DIR=""
+CLO_TIMEZONE=""
 
 while true ; do
     case "$1" in
@@ -502,6 +507,8 @@ while true ; do
             SRU_SERVER_PORT="$2" ; shift 2 ;;
         --template-cache-dir)
             CLO_TEMPLATE_CACHE_DIR="$2" ; shift 2 ;;
+        --timezone)
+            CLO_TIMEZONE="$2" ; shift 2 ;;
         --upload-path)
             CLO_UPLOAD_PATH="$2" ; shift 2 ;;
         --letsencrypt)
@@ -548,6 +555,10 @@ then
     PASSWDFILE="$CLO_PASSWDFILE"
 fi
 
+if [ "$CLO_TIMEZONE" != "" ]; then
+    TIMEZONE=$CLO_TIMEZONE
+fi
+
 if [ "$CLO_BIBLIOS_INDEXING_MODE" !=  "" ]; then
     BIBLIOS_INDEXING_MODE=$CLO_BIBLIOS_INDEXING_MODE
 fi
index 0a4f02e..6d3d31e 100644 (file)
@@ -367,7 +367,7 @@ __END_SRU_PUBLICSERVER__
  <!-- The timezone setting can let you force the timezone for this
       instance to be something other then the local timezone of the
       server. e.g. Antarctica/South_Pole -->
- <timezone></timezone>
+ <timezone>__TIMEZONE__</timezone>
 
 </config>
 </yazgfs>