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
This commit is contained in:
Dominique Leuenberger 2016-09-23 09:30:38 +00:00 committed by Git OBS Bridge
commit 3bd79d2cb6
7 changed files with 707 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

56
GNUHealth.README.SUSE Normal file
View File

@ -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 <axel.braun@gmx.de> Tue, 27 Jan 2015 10:08:00 +0200

4
_service Normal file
View File

@ -0,0 +1,4 @@
<services>
<service name="download_files" mode="localonly" />
</services>

3
gnuhealth-3.0.3.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:980beedf052e0204e8d8d150d2b23ec6a08ebb1e6022315b34130767bdacbab5
size 10260031

39
gnuhealth.changes Normal file
View File

@ -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 )

140
gnuhealth.spec Normal file
View File

@ -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

442
gnuhealth_control Normal file
View File

@ -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 <falcon@gnu.org>
# Adaption to openSUSE Axel Braun <axel.braun@gmx.de>
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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 <directory> --database <dbname>"
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 $@