From 99051debb5537cfcfaabbc6a7f19f74810555d618e9e28942aa813556ee8d1b7 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Fri, 23 Sep 2016 09:30:38 +0000 Subject: [PATCH] Accepting request 423944 from Application:ERP:Tryton:Factory File permissions corrected OBS-URL: https://build.opensuse.org/request/show/423944 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gnuhealth?expand=0&rev=1 --- .gitattributes | 23 +++ .gitignore | 1 + GNUHealth.README.SUSE | 56 ++++++ _service | 4 + gnuhealth-3.0.3.tar.gz | 3 + gnuhealth.changes | 39 ++++ gnuhealth.spec | 140 +++++++++++++ gnuhealth_control | 442 +++++++++++++++++++++++++++++++++++++++++ 8 files changed, 708 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 GNUHealth.README.SUSE create mode 100644 _service create mode 100644 gnuhealth-3.0.3.tar.gz create mode 100644 gnuhealth.changes create mode 100644 gnuhealth.spec create mode 100644 gnuhealth_control diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/GNUHealth.README.SUSE b/GNUHealth.README.SUSE new file mode 100644 index 0000000..b317fa5 --- /dev/null +++ b/GNUHealth.README.SUSE @@ -0,0 +1,56 @@ +GNUHealth for openSUSE +====================== + +GNUHealth is a free Health and Hospital Information system build on top of Tryton, an OpenSource ERP framework. + +This is the openSUSE package for GNUHealth. It was build to simplify the installation and maintenance of a system, to make it useable for 'end-users' as well. + +To achieve this goal, the openSUSE package handles some things different than the GNUHealth standard: + +1) No installation from source code +GNUHealth has an installation script (gnuhealth_install.sh)that installs the Software from the source code. +It has shown that this can cause a lot of trouble with dependencies (other software packages that are required to run GNUHealth and the Tryton Server), as they may be named slightly different in your Linux-distribution, or are just not listed. + +To avoid hassle for each and every end user, openSUSE uses the Open Build Service [1] to create a package where all dependencies are resolved for you. + +As a consequence, you install the package 'gnuhealth' with the openSUSE package manager, and the system does the rest for you. See [2] for installation advise. + +2) GNUHealth depends on Tryton +Tryton [3] is the technical backend for GNUHealth. Tryton can run as ERP-System on its own. For the reasons explained under 1) , Tryton is build as well as package for openSUSE, following the same philosophy. See [4]for details. + +See as well: /usr/share/doc/packages/trytond/tryton-server.README.SUSE on your local installation + +3) GNUHealth is build on top of Tryton +Unlike the standard GNUHealth setup, openSUSE treats GNUHealth as add-on (additional modules) to a Tryton standard installation. The implications are: + +- The Tryton Server (basis for GNUHealth) runs under the user 'tryton', not under the user 'gnuhealth' +- you can use the openSUSE standard tools to start and stop the server [4] +- you can use the openSUSE package manager (zypper or YaST) to install upgrades. +- You *SHOULD NOT* use gnuhealth-control to install upgrades! gnuhealth-control forces an installation from source, and by this may break your installation +- all Tryton and GNUHealth modules are installed in the python directory /usr/lib/python/site-packages/trytond + +Nevertheless, you can use gnuhealth-control to create database backups, install languages and updates. Make sure the version of gnuhealth_control ends on -openSUSE + +You may use the GNUHealth mailing list (health@gnu.org) for remarks or questions. + + +Digital Signatures +================== + +In order to make use of GNUHealth's capabilities to digitally sign documents, you need to create a PGP-key for the user logged in to the operating system. + +From the start menu, start the program Kgpg and follow the instructions, it will guide you through the process of key generation. Choose the maximal key length (4096). +Use a passphrase with Capital letters, small letters, numbers and special characters (like %$ยง etc) and have at least 12 digits for the passphrase - the more, the better. +Keep the passphrase in a secure location, and take a backup of the PGP keys (located in ~/gnupg - in the live CD this is /home/gnuhealth/.gnupg ). + + +Have fun and keep the neighborhood well and fit! + + +[1] https://build.opensuse.org +[2] http://en.wikibooks.org/wiki/GNU_Health/Operating_System-Specific_Notes#OpenSUSE +[3] http://www.tryton.org +[4] https://code.google.com/p/tryton/wiki/InstallationonopenSUSE + + + -- Axel Braun Tue, 27 Jan 2015 10:08:00 +0200 diff --git a/_service b/_service new file mode 100644 index 0000000..aa59ca1 --- /dev/null +++ b/_service @@ -0,0 +1,4 @@ + + + + diff --git a/gnuhealth-3.0.3.tar.gz b/gnuhealth-3.0.3.tar.gz new file mode 100644 index 0000000..d0c3531 --- /dev/null +++ b/gnuhealth-3.0.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:980beedf052e0204e8d8d150d2b23ec6a08ebb1e6022315b34130767bdacbab5 +size 10260031 diff --git a/gnuhealth.changes b/gnuhealth.changes new file mode 100644 index 0000000..54b002d --- /dev/null +++ b/gnuhealth.changes @@ -0,0 +1,39 @@ +------------------------------------------------------------------- +Wed Aug 31 06:26:10 UTC 2016 - axel.braun@gmx.de + +- file permissions corrected + +------------------------------------------------------------------- +Sun Aug 21 12:19:30 UTC 2016 - jengelh@inai.de + +- Trim summary/description from redundant words + +------------------------------------------------------------------- +Mon Jan 11 12:07:51 UTC 2016 - axel.braun@gmx.de + +- version 3.0.0 + +------------------------------------------------------------------- +Mon Jan 4 07:27:41 UTC 2016 - axel.braun@gmx.de + +- Version 3.0RC2 + +------------------------------------------------------------------- +Thu Jan 22 06:41:46 UTC 2015 - axel.braun@gmx.de + +- version 2.8 + +------------------------------------------------------------------- +Thu Jul 10 14:55:14 UTC 2014 - axel.braun@gmx.de + +- Release 2.6.0 + +------------------------------------------------------------------- +Wed Jan 22 07:44:06 UTC 2014 - axel.braun@gmx.de + +- GnuHealth 2.4RC1 on Tryton 3.0 + +------------------------------------------------------------------- +Fri Oct 18 12:10:27 UTC 2013 - axel.braun@gmx.de + +- Initial package build on OBS ( version 2.2.1 ) diff --git a/gnuhealth.spec b/gnuhealth.spec new file mode 100644 index 0000000..f7443c4 --- /dev/null +++ b/gnuhealth.spec @@ -0,0 +1,140 @@ +# +# spec file for package GNU Health +# +# Copyright (c) 2014 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2014-2016 Dr. Axel Braun +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ + +%define majorver 3.0 + +Name: gnuhealth + +# List of additional build dependencies +BuildRequires: python-setuptools + +Version: %{majorver}.3 +Release: 1 +License: GPL-3.0+ + +Url: http://health.gnu.org +Source: http://ftp.gnu.org/gnu/health/%{name}-%{version}.tar.gz +Source1: GNUHealth.README.SUSE +Source2: gnuhealth_control + +BuildArch: noarch + +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd + +Group: Productivity/Office/Management + +Summary: A Health and Hospital Information System + +Requires: trytond +Requires: python-ldap +Requires: python-cracklib +Requires: python-vobject +Requires: proteus +Requires: python-simpleeval +Requires: python-hl7apy +Requires: python-PyWebDAV +Requires: python-qrcode +Requires: python-six +Requires: python-imaging +Requires: python-caldav +Requires: python-polib +Requires: trytond_account +Requires: trytond_account_invoice +Requires: trytond_account_invoice_stock +Requires: trytond_account_product +Requires: trytond_calendar +Requires: trytond_company +Requires: trytond_country +Requires: trytond_currency +Requires: trytond_party +Requires: trytond_product +Requires: trytond_purchase +Requires: trytond_stock +Requires: trytond_stock_lot +Requires: trytond_stock_supply + +# additional suggestion for a useable editor +Suggests: nano + +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +GNU Health is the Hospital Information System adopted by the United +Nations University, International Institute for Global Health, for +the implementations and trainings. + + +%prep +%setup -q -n %{name}-%{version} +#%patch0 -p1 +cp %{S:1} . +cp %{S:2} . + +%build +for i in h*; do + cd $i + python setup.py build + cd .. +done + +#pdq + cd pdq + python setup.py build + cd .. + +%install +for i in h*; do + cd $i + python setup.py install --prefix=%_prefix --root=%buildroot + cd .. +done +#pdq + cd pdq + python setup.py install --prefix=%_prefix --root=%buildroot + cd .. + +mkdir -p -m 755 %{buildroot}%{_bindir} +install -p -m 755 gnuhealth-control %{buildroot}%{_bindir}/gnuhealth-control + +# create user +%pre +#getent group tryton > /dev/null || /usr/sbin/groupadd -r tryton +#getent passwd gnuhealth > /dev/null || /usr/sbin/useradd -r -g tryton \ +# -d %{_localstatedir}/lib/%{name} -c 'GNU Health' gnuhealth +# Dont create as system user +#getent passwd gnuhealth > /dev/null || /usr/sbin/useradd -g tryton \ +# -c 'GNU Health' gnuhealth +#: + +#Write environment changes to /etc/bash.bashrc.local +cat > /etc/bash.bashrc.local << "EOF" +alias cdlogs='cd /var/log/trytond' +alias cdexe='cd /usr/lib/python/site-packages/trytond' +alias cdconf='cd /etc/tryton' +alias cdmods='cd /usr/lib/python/site-packages/trytond/modules' +alias editconf='${EDITOR} /etc/tryton/trytond.conf' +EOF + +%files +%defattr(744,root,root) +%{_bindir}/gnuhealth-control +%defattr(-,root,root) +%doc README Changelog COPYING gnuhealth-setup version gnuhealthrc GNUHealth.README.SUSE scripts/* backend/* config/* doc/* +%{python_sitelib}/* + +%changelog diff --git a/gnuhealth_control b/gnuhealth_control new file mode 100644 index 0000000..13a0221 --- /dev/null +++ b/gnuhealth_control @@ -0,0 +1,442 @@ +#!/usr/bin/bash + +# gnuhealth-control +# The GNU Health control center + +############################################################################## +# +# GNU Health: The Free Health and Hospital Information System +# Copyright (C) 2008-2015 Luis Falcon +# Adaption to openSUSE Axel Braun +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## + +VERSION="3.0.2-openSUSE" + +TRYTON_URL="http://downloads.tryton.org" +GNUHEALTH_URL="http://ftp.gnu.org/gnu/health" +TRANSLATE_URL="http://translate.gnusolidario.org" +GNUHEALTH_DIR="/usr/lib/python/site-packages/trytond/modules" + +UPDATE_DOWNLOAD_DIR="/tmp/gnuhealth_update" + +usage() +{ + cat << EOF + +This is GNU Health control center ${VERSION} + +usage: `basename $0` command [options] + +Command: + + version : Show version + backup : Backup he gnuhealth kernel, attach dir and database + update : Download and install the patches + getlang : Get and install / update the language pack code + status : Show environment and GNU Health Tryton server status + +Options: + + --backdir : destination directory for the backup file + --dry-run : Check, download and preview, but don't actually update process + --database : database name to use with the backup command + +EOF + exit 0 +} + +help() +{ + cat << EOF + The GNU Health Control Center (gnuhealth-control) is the main tool for + administrative tasks of the GNU Health environment. + + It can perform backups and updates of the instance + + Updates + ------- + + Use the system tools to update GNU Health: + zypper up + will update all packages to the latest version. This includes Tryton Server + as well as GNU Health. + +EOF + usage + exit 0 +} + +cli_msg() +{ + local UTC="$(date -u +'%Y-%m-%d %H:%M:%S')" + + case $1 in + ERROR ) echo -e "\e[00;31m${UTC} [ERROR] $2\e[00m";; + WARNING ) echo -e "\e[0;33m${UTC} [WARNING] $2\e[m" ;; + INFO ) echo -e "\e[0;36m${UTC} [INFO] $2\e[m" ;; + esac +} + +get_current_values() +{ + # Bail out if no GNU Health profile exists + #if [ ! -e $HOME/.gnuhealthrc ] + #then + # cli_msg "ERROR" "No GNU Health profile found !" + # exit 1 + #fi + + # Stop if it can't find the GNU Health version + #if [ -z "$GNUHEALTH_VERSION" ] + #then + # cli_msg "ERROR" "Could not find the GNU Health version env. variable" + # exit 1 + #fi + + # Stop if current GNU Health version < 2.8.0 + #local raw_ver=`echo $GNUHEALTH_VERSION | tr -d '.'` + #if [ $raw_ver -lt 280 ] + #then + # cli_msg "ERROR" "GNU Health version must be at least 2.8" + # exit 1 + #fi + + cli_msg "INFO" "Environment variables" + #cli_msg "INFO" "GNUHEALTH_VERSION = ${GNUHEALTH_VERSION}" + #cli_msg "INFO" "TRYTON VERSION = ${TRYTON_VERSION}" + cli_msg "INFO" "PYTHONPATH = $PYTHONPATH" + +} + +do_backup() +{ + + get_current_values + + local COMMAND=$1 + local BACKDATE=`date -u +%Y-%m-%d_%H%M%S` + local LOCKFILE="/tmp/.gnuhealth_backup.lock" + local INFOFILE="/tmp/gnuhealth_backup.log" + local BACKDIR="" + local DB="" + + + shift # Remove the command and deal only with the options + + if [ $# -ne 4 ]; then + echo -e "Usage : gnuhealth-control backup --backdir --database " + exit + fi + + for option in "$@" + do + case $option in + --backdir ) BACKDIR=$2;; + --database ) DB=$2 ;; + esac + shift + done + + if [ -f $LOCKFILE ] + then + cli_msg "ERROR" "Backup in progress or stale lock file found ..." | tee -a $INFOFILE + exit 1 + fi + + + if [ ! -e ${BACKDIR} ] + then + cli_msg "ERROR" "Backup directory ${BACKDIR} not found !" + exit 1 + fi + + touch $LOCKFILE + + # Backup start + + cli_msg "INFO" "START Database Backup" | tee -a $INFOFILE + + pg_dump $DB > $BACKDIR/backup\_$DB\_$BACKDATE || bailout + + cli_msg "INFO" "Compressing Database Backup" | tee -a $INFOFILE + + gzip "${BACKDIR}/backup_${DB}_${BACKDATE}" || bailout + + cli_msg "INFO" "Creating compressed tarball with DB and GNU Health Attachment directory" | tee -a $INFOFILE + +# tar -cvf "${BACKDIR}/gnuhealth_${DB}_with_fs_backup_${BACKDATE}.tar.gz" $HOME || bailout + tar -cvf "${BACKDIR}/gnuhealth_${DB}_with_fs_backup_${BACKDATE}.tar.gz" /var/lib/tryton || bailout + + cli_msg "INFO" "Backup Successful" | tee -a $INFOFILE + + #Remove lock file + rm $LOCKFILE + +} + +check_status() +{ +# TRYTOND_PIDS=`pgrep -f "^.*python.*trytond.*$"` +# if [ $? = 0 ] +# then +# cli_msg "INFO" "GNU Health / Tryton instance(s) with PID(s) :" +# echo $TRYTOND_PIDS +# else +# cli_msg "INFO" "No GNU Health instance seems to be running" +# fi + systemctl status trytond + +} + +check_download_dir() +{ + if [ -d $UPDATE_DOWNLOAD_DIR ]; then + echo "Update download directory exists. Bailing out" + exit 1 + fi +} + +check_updates() +{ +# source $HOME/.gnuhealthrc + + zypper lu | grep "trytond , gnuhealth" + +# local TRYTOND_PATCHLEVEL=`echo ${TRYTON_VERSION} | cut -d'.' -f3` + +# local TRYTON_MODULES=`cd ${GNUHEALTH_DIR}; ls -1d trytond*` +# TRYTON_MAJOR_MINOR=`echo $TRYTON_VERSION | cut -d'.' -f1-2` + +# NEED_UPDATE_TRYTOND=0 +# NEED_UPDATE_MODULES=0 +# NEED_UPDATE_PATCHSETS=0 +# MOD_UPDATES="" +# NEED_DELETE=0 +# TO_DELETE="" + +# cli_msg "INFO" "TRYTON SERVER : Checking latest patchlevel" + +# LATEST_TRYTOND=`wget --quiet -O - ${TRYTON_URL}/${TRYTON_MAJOR_MINOR} | egrep -o trytond-${TRYTON_MAJOR_MINOR}.[0-9\.]+.tar.gz | sort -V | tail -1` +# local LATEST_TRYTOND_PATCHLEVEL=`echo ${LATEST_TRYTOND} | cut -d'.' -f3` + + # Check latest tryton server against local version +# if (( ${TRYTOND_PATCHLEVEL} < ${LATEST_TRYTOND_PATCHLEVEL} )); then +# cli_msg "WARNING" "TRYTON SERVER patchlevel ${TRYTOND_PATCHLEVEL} is outdated ! A newer version is available (${LATEST_TRYTOND})" +# NEED_DELETE=1 +# TO_DELETE="${TO_DELETE} ${GNUHEALTH_DIR}/tryton/server/trytond-${TRYTON_MAJOR_MINOR}.${TRYTOND_PATCHLEVEL}" +# NEED_UPDATE_TRYTOND=1 +# else +# cli_msg "INFO" "TRYTON SERVER patchlevel ${TRYTOND_PATCHLEVEL} is at the latest version" +# fi + + # Check latest tryton modules against local version +# for MODULE in ${TRYTON_MODULES}; do +# MODNAME=`echo $MODULE | cut -d'-' -f1` +# MODULE_PATCHLEVEL=`echo $MODULE | sed 's/^.*\.\([[:digit:]]*\)$/\1/'` +# LATEST_MODULE=`wget --quiet -O - ${TRYTON_URL}/${TRYTON_MAJOR_MINOR} | egrep -o ${MODNAME}-${TRYTON_MAJOR_MINOR}.[0-9\.]+.tar.gz | sort -V | tail -1` +# LATEST_MODULE_PATCHLEVEL=`echo ${LATEST_MODULE} | cut -d'.' -f3` +# if (( ${MODULE_PATCHLEVEL} < ${LATEST_MODULE_PATCHLEVEL} )); then +# cli_msg "WARNING" "${MODNAME} patchlevel ${MODULE_PATCHLEVEL} is outdated ! A newer version is available (${LATEST_MODULE})" +# NEED_UPDATE_MODULES=1 +# MOD_UPDATES="${MOD_UPDATES} ${LATEST_MODULE}" +# NEED_DELETE=1 +# TO_DELETE="${TO_DELETE} ${GNUHEALTH_DIR}/tryton/server/modules/${MODNAME}-${TRYTON_MAJOR_MINOR}.${MODULE_PATCHLEVEL}" +# else +# cli_msg "INFO" "${MODNAME} patchlevel ${MODULE_PATCHLEVEL} is at the latest version" +# fi +# done + + # Check latest GNU HEALTH PATCHSETS against local version +# cli_msg "INFO" "GNU HEALTH KERNEL : Checking latest PATCHSETS" + +# GNUHEALTH_MAJOR_MINOR=`echo $GNUHEALTH_VERSION | cut -d'.' -f1-2` +# GNUHEALTH_PATCHSET=`echo $GNUHEALTH_VERSION | cut -d'.' -f3` + +# PATCHSETS_NUM=`wget --quiet -O - ${GNUHEALTH_URL}/ | egrep -o gnuhealth_patchset-${GNUHEALTH_MAJOR_MINOR}\.[0-9\.]+.tar.gz | uniq | wc -l | tr -d ' '` + +# if (( ${PATCHSETS_NUM} > 0 )); then +# cli_msg "INFO" "Number of Patchsets for this version : ${PATCHSETS_NUM}" + +# LATEST_GNUHEALTH=`wget --quiet -O - ${GNUHEALTH_URL}/ | egrep -o gnuhealth_patchset-${GNUHEALTH_MAJOR_MINOR}\.[0-9\.]+.tar.gz | sort -V | tail -1` +# LATEST_GNUHEALTH_PATCHSET=`echo ${LATEST_GNUHEALTH} | cut -d'.' -f3` + +# if (( ${GNUHEALTH_PATCHSET} < ${LATEST_GNUHEALTH_PATCHSET} )); then +# cli_msg "WARNING" "GNU HEALTH patchset ${GNUHEALTH_PATCHSET} is outdated ! A newer version is available (${LATEST_GNUHEALTH})" +# NEED_UPDATE_PATCHSETS=1 +# let PSET=GNUHEALTH_PATCHSET+1 +# for n in `seq $PSET $LATEST_GNUHEALTH_PATCHSET` +# do +# PATCHSETS="$PATCHSETS gnuhealth_patchset-${GNUHEALTH_MAJOR_MINOR}.$n.tar.gz" +# done + +# else +# cli_msg "INFO" "GNU HEALTH patchset ${GNUHEALTH_PATCHSET} is at the latest version" +# fi + +# else +# cli_msg "INFO" "** NO GNU HEALTH PATCHSETS FOUND FOR THIS VERSION **" +# fi + +} + +install_updates() +{ + +#if [ $NEED_UPDATE_TRYTOND -eq 1 ]; then +# cli_msg "INFO" "Downloading TRYTON SERVER $LATEST_TRYTOND" +# wget --quiet --directory-prefix=${UPDATE_DOWNLOAD_DIR}/trytond ${TRYTON_URL}/${TRYTON_MAJOR_MINOR}/${LATEST_TRYTOND} || exit 1 +# cli_msg "INFO" "--> Uncompressing TRYTON SERVER $LATEST_TRYTOND" +# tar -xzf ${UPDATE_DOWNLOAD_DIR}/trytond/${LATEST_TRYTOND} --directory ${GNUHEALTH_DIR}/tryton/server || exit 1 +# fi + +# if [ $NEED_UPDATE_MODULES -eq 1 ]; then +# for mod in ${MOD_UPDATES} +# do +# cli_msg "INFO" "Downloading $mod" +# wget --quiet --directory-prefix=${UPDATE_DOWNLOAD_DIR}/modules ${TRYTON_URL}/${TRYTON_MAJOR_MINOR}/${mod} || exit 1 +# cli_msg "INFO" "--> Uncompressing ${mod}" +# tar -xzf ${UPDATE_DOWNLOAD_DIR}/modules/${mod} --directory ${GNUHEALTH_DIR}/tryton/server/modules || exit 1 +# done +# fi + +# if [ $NEED_UPDATE_PATCHSETS -eq 1 ]; then +# for patchset in ${PATCHSETS} +# do +# cli_msg "INFO" "Downloading $patchset" +# wget --quiet --directory-prefix=${UPDATE_DOWNLOAD_DIR}/patchsets ${GNUHEALTH_URL}/${patchset} || exit 1 +# cli_msg "INFO" "--> Applying PATCHSET $patchset" +# tar -xzf ${UPDATE_DOWNLOAD_DIR}/patchsets/${patchset} --directory ${HOME} || exit 1 +# done +# fi + + if [ $2 == "--dry-run" ];then + exit 0 + fi + + sudo zypper up trytond* gnuhealth + +} + +#remove_old() +#{ +# if [ ${NEED_DELETE} -eq 1 ]; then +# cli_msg "WARNING" "Removing obsolete kernel and/or modules : ${TO_DELETE}" +# rm -rf ${TO_DELETE} +# fi +#} + +relink_mods() +{ +# source $HOME/.gnuhealthrc + +# if [ ${NEED_DELETE} -eq 1 ]; then +# local TRYTON_MODS=`cd ${GNUHEALTH_DIR}/tryton/server/modules; ls -1d trytond_*` +# for mod in ${TRYTON_MODS}; do +# local modname=`echo ${mod} | cut -d'-' -f1 | cut -d'_' -f2-` +# cli_msg "INFO" "Relinking : ${mod}" +# ln -sf ${GNUHEALTH_DIR}/tryton/server/modules/${mod} ${GNUHEALTH_DIR}/tryton/server/${TRYTOND}/trytond/modules/${modname} || exit 1 +# done + +# cli_msg "INFO" "Relinking GNU Health modules ..." +# local HEALTH_MODS=`cd ${GNUHEALTH_DIR}/tryton/server/modules; ls -1d health*` +# for mod in ${HEALTH_MODS}; do +# cli_msg "INFO" "--> Relinking : ${mod}" +# ln -sf ${GNUHEALTH_DIR}/tryton/server/modules/${mod} ${GNUHEALTH_DIR}/tryton/server/${TRYTOND}/trytond/modules/ || exit 1 +# done + +# cli_msg "INFO" "Relinking local modules and customizations ..." + +# local LOCAL_MODS=`cd ${GNUHEALTH_DIR}/tryton/server/modules/local; ls -A` +# for mod in ${LOCAL_MODS}; do +# cli_msg "INFO" "--> Relinking : ${mod}" +# ln -sf ${GNUHEALTH_DIR}/tryton/server/modules/local/${mod} ${GNUHEALTH_DIR}/tryton/server/${TRYTOND}/trytond/modules/ || exit 1 +# done + +# fi + + sudo systemctl restart trytond + +} + +do_update() +{ + if [ $# -gt 1 ];then + if [ $2 != "--dry-run" ];then + cli_msg "ERROR" "Unrecognized update option" + exit 1 + fi + fi + + check_download_dir + get_current_values + check_updates + if [ $# -gt 1 ];then + if [ $2 == "--dry-run" ];then + exit 0 + fi + fi + install_updates +# remove_old + relink_mods +} + +getlang() { + if [ $# -eq 1 ]; then + usage + fi + + local lang_to_install=$2 + local lang_file=${lang_to_install}.zip +# source $HOME/.gnuhealthrc || exit 1 + cli_msg "INFO" "Going to modules directory..." + + cd ${GNUHEALTH_DIR} || exit 1 + cli_msg "INFO" "Retrieving language pack file for ${lang_to_install}" + wget ${TRANSLATE_URL}/export/?path=/${lang_to_install}/GNUHEALTH/ -O /tmp/${lang_file} || exit 1 + cli_msg "INFO" "Installing / Updating language files for ${lang_to_install} ..." + + tar --strip-components 3 -xzf /tmp/${lang_file} || exit 1 + cli_msg "INFO" "Language pack ${lang_to_install} sucessfully installed / updated" + cli_msg "INFO" "You now need to update the database modules" +# cd +} + +bailout() { + cli_msg "ERROR" "Bailing out !" + cli_msg "ERROR" "Removing backup lock file" + rm -f $LOCKFILE + exit 1 +} + +parse_command_line() +{ + if [ $# -eq 0 ]; then + usage + fi + + case $1 in + version) echo $VERSION;; + backup) do_backup $@;; + update) do_update $@;; + status) check_status;; + getlang) getlang $@;; + help) help;; + *) echo $1: Unrecognized command; exit 1;; + esac +} + +parse_command_line $@