From 8278e711deeb1edab5f6646498b2894f91128f42f66d9177cc6378cfb0e9a5b1 Mon Sep 17 00:00:00 2001 From: Axel Braun Date: Wed, 20 Jun 2018 09:18:47 +0000 Subject: [PATCH] - gnuhealth-control: added info about backup file openSUSE-gnuhealth-setup added OBS-URL: https://build.opensuse.org/package/show/Application:ERP:GNUHealth:Factory/gnuhealth?expand=0&rev=7 --- gnuhealth-control | 14 +- gnuhealth.changes | 6 + gnuhealth.spec | 5 +- openSUSE-gnuhealth-setup | 328 ++++++++++++++++++++++++++++++++++++++ openSUSE_gnuhealth_setup | 331 +-------------------------------------- 5 files changed, 349 insertions(+), 335 deletions(-) create mode 100644 openSUSE-gnuhealth-setup diff --git a/gnuhealth-control b/gnuhealth-control index a9eddab..13430a8 100644 --- a/gnuhealth-control +++ b/gnuhealth-control @@ -24,7 +24,7 @@ # ############################################################################## -VERSION="3.2.2-openSUSE" +VERSION="3.2.3-openSUSE" TRYTON_URL="http://downloads.tryton.org" GNUHEALTH_URL="http://ftp.gnu.org/gnu/health" @@ -177,17 +177,19 @@ do_backup() gzip "${BACKDIR}/backup_${DB}_${BACKDATE}" || bailout cli_msg "INFO" "Compressing GNU Health Attachment directory" | tee -a $INFOFILE - - tar -cvzf "${BACKDIR}/gnuhealth_${DB}_fs_backup_${BACKDATE}.tar.gz" /var/lib/tryton || bailout +#AB - start + BACKUP_NAME=gnuhealth_${DB}_fs_backup_${BACKDATE}.tar.gz +# tar -cvzf "${BACKDIR}/gnuhealth_${DB}_fs_backup_${BACKDATE}.tar.gz" /var/lib/tryton || bailout + tar -cvzf "${BACKDIR}/${BACKUP_NAME}" /var/lib/tryton || bailout cli_msg "INFO" "Creating tarball with compressed DB and GNU Health Attachment directory" | tee -a $INFOFILE tar -cvf "${BACKDIR}/gnuhealth_${DB}_with_fs_backup_${BACKDATE}.tar" \ - ${BACKDIR}/backup_${DB}_${BACKDATE}.gz ${BACKDIR}/gnuhealth_${DB}_fs_backup_${BACKDATE}.tar.gz \ + ${BACKDIR}/backup_${DB}_${BACKDATE}.gz ${BACKDIR}/$BACKUP_NAME} \ || bailout - cli_msg "INFO" "Backup Successful" | tee -a $INFOFILE - + cli_msg "INFO" "Backup successfully written to ${BACKDIR}/${BACKUP_NAME}" | tee -a $INFOFILE +#AB - END #Remove lock file rm $LOCKFILE diff --git a/gnuhealth.changes b/gnuhealth.changes index ed60f82..e20c384 100644 --- a/gnuhealth.changes +++ b/gnuhealth.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jun 20 09:17:23 UTC 2018 - axel.braun@gmx.de + +- gnuhealth-control: added info about backup file + openSUSE-gnuhealth-setup added + ------------------------------------------------------------------- Tue Jun 5 12:13:54 UTC 2018 - axel.braun@gmx.de diff --git a/gnuhealth.spec b/gnuhealth.spec index f7bff1e..e796a31 100644 --- a/gnuhealth.spec +++ b/gnuhealth.spec @@ -34,11 +34,12 @@ Source1: GNUHealth.README.SUSE Source2: gnuhealth-control Source3: gnuhealth.service Source4: gnuhealth-webdav@.service +Source4: openSUSE-gnuhealth-setup BuildArch: noarch Summary: A Health and Hospital Information System -License: GPL-3.0+ +License: GPL-3.0-or-later Group: Productivity/Office/Management Requires: proteus @@ -118,6 +119,7 @@ done mkdir -p -m 755 %{buildroot}%{_bindir} install -p -m 755 gnuhealth-control %{buildroot}%{_bindir}/gnuhealth-control +install -p -m 755 %{S:4} %{buildroot}%{_bindir}/openSUSE-gnuhealth-setup mkdir -p $RPM_BUILD_ROOT%{_unitdir} install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_unitdir}/%{name}.service @@ -152,6 +154,7 @@ EOF %files %defattr(744,root,root) %{_bindir}/gnuhealth-control +%{_bindir}/openSUSE-gnuhealth-setup %{_unitdir}/%{name}.service %{_unitdir}/%{name}-webdav@.service %defattr(-,root,root) diff --git a/openSUSE-gnuhealth-setup b/openSUSE-gnuhealth-setup new file mode 100644 index 0000000..d26bd56 --- /dev/null +++ b/openSUSE-gnuhealth-setup @@ -0,0 +1,328 @@ +#!/bin/bash + +# GNU Health installation script for openSUSE +# Version agnostic to GNU Health + +############################################################################## +# +# GNU Health Installer for openSUSE +# +# Copyright (C) 2018 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 . +# +############################################################################## + +#----------------------------------------------------------------------------- +# Change log +#----------------------------------------------------------------------------- +# V 0.2 20180617 Axel Replace tryton with ${DB_USER} + + +#----------------------------------------------------------------------------- +# Variables declaration +#----------------------------------------------------------------------------- + +#GNU Health installer for openSUSE version +VERSION="0.2" + +# Colors constants +NONE="$(tput sgr0)" +RED="$(tput setaf 1)" +GREEN="$(tput setaf 2)" +YELLOW="\n$(tput setaf 3)" +WHITE="\n$(tput setaf 7)" + +# Params +#ROOT_PW="root" +DB_NAME="GNUHEALTH" +DB_ADMIN_PWD="admin" +DB_USER="tryton" +DB_CONFIG="/var/lib/pgsql/data/pg_hba.conf" +GH_START="y" + +#----------------------------------------------------------------------------- +# Functions +#----------------------------------------------------------------------------- + +message() +{ + 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 +} + +help() +{ + cat << EOF + +This is GNU Health Setup for openSUSE ${VERSION} + +usage: `basename $0` command + +Command: + + version : Show version + setup : Setup a GNU Health server + help : shows this message + +EOF + exit 0 +} + +show_version () { + case $1 in + version) message "INFO" "This is is GNU Health setup for openSUSE V ${VERSION}"; exit 0;; + esac + +} + +bailout() { + message "INFO" "Bailing out !" + message "INFO" "Cleaning up temporary file" + rm -rf /tmp/pw +# if [ -e ${BASEDIR}/.installation_ok ];then +# message "WARNING" "Previous successful installation found. NOT removing base dir at ${BASEDIR}" +# else +# message "INFO" "removing base dir at ${BASEDIR}" +# rm -rf ${BASEDIR} +# fi + exit 1 +} + +#----------------------------------------------------------------------------- +# go-ahead: perform update +#----------------------------------------------------------------------------- + +go_ahead() { + +# login as root, start postgres + +echo "Starting database...." + +systemctl start postgresql || bailout + +echo "Database started" + +# su -postgres || bailout +#then as postgres, and change parameter + +echo "Changing postgres trust method" + +sudo -u postgres sed -i -e 's/\(\(local\|host\).*all.*all.*\)\(peer\|ident\)/\1trust/g' ${DB_CONFIG} || bailout + +echo "Postgres trust method changed" + +echo "Create database user" +#create user +sudo -u postgres psql -c "CREATE USER ${DB_USER} WITH CREATEDB;" + +echo "Database user created" + +echo "Creating database ${DB_NAME}" +# create database +sudo -u postgres createdb ${DB_NAME} --encoding='UTF8' --owner=${DB_USER} || bailout + +echo "Database created" +#exit as postgres +#exit + +echo "Restarting database" + +systemctl restart postgresql || bailout + +# login as user tryton +#su tryton -s /bin/bash + +echo "Initializing database - this may take a while" + +echo ${DB_ADMIN_PWD} > /tmp/pw || bailout + +sudo -u tryton env TRYTONPASSFILE=/tmp/pw trytond-admin -c /etc/tryton/trytond.conf --all -d ${DB_NAME} --password || bailout + +rm /tmp/pw || bailout + + +if [ $GH_START = "y" ]; then +echo "Enabling GNU Health at boot time" + +systemctl enable postgresql +systemctl enable gnuhealth + +fi + +echo "All done" + +} + +#----------------------------------------------------------------------------- +# Call user parameter +#----------------------------------------------------------------------------- + +get_root_pw() { + Y='' + read -p "Please enter root-password [$ROOT_PW] " Y + + if [ ! -e $Y ]; then + ROOT_PW=$Y + fi + message "INFO" "root-password is $ROOT_PW" +} + +get_db_name() { + Y='' + read -p "Please enter name for new database [$DB_NAME] " Y + if [ ! -e $Y ]; then + DB_NAME=$Y + fi + message "INFO" "DB-Name is $DB_NAME" +} + +get_db_admin() { + Y='' + read -p "Please enter admin-password for new database [$DB_ADMIN_PWD] " Y + if [ ! -e $Y ]; then + DB_ADMIN_PWD=$Y + fi + message "INFO" "DB Admin password is $DB_ADMIN_PWD" +} + +get_db_user() { + Y='' + read -p "Please enter database user [$DB_USER] " Y + if [ ! -e $Y ]; then + DB_USER=$Y + fi + message "INFO" "DB User is $DB_USER" +} + +get_db_file() { + Y='' + read -p "Please enter database config file [$DB_CONFIG] " Y + if [ ! -e $Y ]; then + DB_CONFIG=$Y + fi + message "INFO" "DB config path & file $DB_CONFIG" +} + +get_GH_start() { + Y='' + read -p "Shall GNU Health start automatically? [$GH_START] " Y + if [ ! -e $Y ]; then + GH_START=$Y + fi + message "INFO" "GNU Health start at boot $GH_START" +} + + +#----------------------------------------------------------------------------- +# verify input +#----------------------------------------------------------------------------- + +verify_input() { + echo ; + message "INFO" "DB Name is ..............$DB_NAME" + message "INFO" "DB Admin password is ....$DB_ADMIN_PWD" + message "INFO" "DB User is ..............$DB_USER" + message "INFO" "DB config path & file is $DB_CONFIG" + message "INFO" "GNU Health start at boot $GH_START" + read -p "Are these values correct? [y]es/[n]o/[a]bort " VAL + +} + +#----------------------------------------------------------------------------- +# Install +#----------------------------------------------------------------------------- + +setup() { + +# check is it runs as root + wai=`whoami` + + if [ $wai != "root" ]; then + message "ERROR" " This script must run as user 'root'" + bailout + fi + + VAL="n" + message "INFO" "Starting GNU Health setup for openSUSE V ${VERSION} ..." + message "INFO" "If the value displayed is OK, just hit to confirm" + + while [ ${VAL} != "y" ]; do + # (1) Get root password +# get_root_pw + + # (2) get Database name + get_db_name + + # (3) change login + get_db_admin + + message "WARNING" "Change the following parameter only if you know what you are doing..." + + # (4) DB user + get_db_user + + # (5) DB config file and path + get_db_file + + # (6) enable GNUHealth at start? + get_GH_start + + # (7) check if all are valid + verify_input + + # request input until all is OK: + if [ -e ${VAL} ]; then + message "ERROR" "Please enter y, n or a" + verify_input + else + + if [ ${VAL} = "y" ]; then + go_ahead + exit 0 + fi + if [ ${VAL} = "a" ]; then + exit 1 + fi + fi + done + +} + +#----------------------------------------------------------------------------- +# Parse command line +#----------------------------------------------------------------------------- + + +parse_command_line() +{ + if [ $# -eq 0 ]; then + help + fi + + case $1 in + version) show_version $@;; + update-deps) install_python_dependencies $@;; + setup) setup $@;; + help) help;; + *) echo $1: Unrecognized command; exit 1;; + esac +} + +parse_command_line "$@" diff --git a/openSUSE_gnuhealth_setup b/openSUSE_gnuhealth_setup index d26bd56..25611e8 100644 --- a/openSUSE_gnuhealth_setup +++ b/openSUSE_gnuhealth_setup @@ -1,328 +1,3 @@ -#!/bin/bash - -# GNU Health installation script for openSUSE -# Version agnostic to GNU Health - -############################################################################## -# -# GNU Health Installer for openSUSE -# -# Copyright (C) 2018 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 . -# -############################################################################## - -#----------------------------------------------------------------------------- -# Change log -#----------------------------------------------------------------------------- -# V 0.2 20180617 Axel Replace tryton with ${DB_USER} - - -#----------------------------------------------------------------------------- -# Variables declaration -#----------------------------------------------------------------------------- - -#GNU Health installer for openSUSE version -VERSION="0.2" - -# Colors constants -NONE="$(tput sgr0)" -RED="$(tput setaf 1)" -GREEN="$(tput setaf 2)" -YELLOW="\n$(tput setaf 3)" -WHITE="\n$(tput setaf 7)" - -# Params -#ROOT_PW="root" -DB_NAME="GNUHEALTH" -DB_ADMIN_PWD="admin" -DB_USER="tryton" -DB_CONFIG="/var/lib/pgsql/data/pg_hba.conf" -GH_START="y" - -#----------------------------------------------------------------------------- -# Functions -#----------------------------------------------------------------------------- - -message() -{ - 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 -} - -help() -{ - cat << EOF - -This is GNU Health Setup for openSUSE ${VERSION} - -usage: `basename $0` command - -Command: - - version : Show version - setup : Setup a GNU Health server - help : shows this message - -EOF - exit 0 -} - -show_version () { - case $1 in - version) message "INFO" "This is is GNU Health setup for openSUSE V ${VERSION}"; exit 0;; - esac - -} - -bailout() { - message "INFO" "Bailing out !" - message "INFO" "Cleaning up temporary file" - rm -rf /tmp/pw -# if [ -e ${BASEDIR}/.installation_ok ];then -# message "WARNING" "Previous successful installation found. NOT removing base dir at ${BASEDIR}" -# else -# message "INFO" "removing base dir at ${BASEDIR}" -# rm -rf ${BASEDIR} -# fi - exit 1 -} - -#----------------------------------------------------------------------------- -# go-ahead: perform update -#----------------------------------------------------------------------------- - -go_ahead() { - -# login as root, start postgres - -echo "Starting database...." - -systemctl start postgresql || bailout - -echo "Database started" - -# su -postgres || bailout -#then as postgres, and change parameter - -echo "Changing postgres trust method" - -sudo -u postgres sed -i -e 's/\(\(local\|host\).*all.*all.*\)\(peer\|ident\)/\1trust/g' ${DB_CONFIG} || bailout - -echo "Postgres trust method changed" - -echo "Create database user" -#create user -sudo -u postgres psql -c "CREATE USER ${DB_USER} WITH CREATEDB;" - -echo "Database user created" - -echo "Creating database ${DB_NAME}" -# create database -sudo -u postgres createdb ${DB_NAME} --encoding='UTF8' --owner=${DB_USER} || bailout - -echo "Database created" -#exit as postgres -#exit - -echo "Restarting database" - -systemctl restart postgresql || bailout - -# login as user tryton -#su tryton -s /bin/bash - -echo "Initializing database - this may take a while" - -echo ${DB_ADMIN_PWD} > /tmp/pw || bailout - -sudo -u tryton env TRYTONPASSFILE=/tmp/pw trytond-admin -c /etc/tryton/trytond.conf --all -d ${DB_NAME} --password || bailout - -rm /tmp/pw || bailout - - -if [ $GH_START = "y" ]; then -echo "Enabling GNU Health at boot time" - -systemctl enable postgresql -systemctl enable gnuhealth - -fi - -echo "All done" - -} - -#----------------------------------------------------------------------------- -# Call user parameter -#----------------------------------------------------------------------------- - -get_root_pw() { - Y='' - read -p "Please enter root-password [$ROOT_PW] " Y - - if [ ! -e $Y ]; then - ROOT_PW=$Y - fi - message "INFO" "root-password is $ROOT_PW" -} - -get_db_name() { - Y='' - read -p "Please enter name for new database [$DB_NAME] " Y - if [ ! -e $Y ]; then - DB_NAME=$Y - fi - message "INFO" "DB-Name is $DB_NAME" -} - -get_db_admin() { - Y='' - read -p "Please enter admin-password for new database [$DB_ADMIN_PWD] " Y - if [ ! -e $Y ]; then - DB_ADMIN_PWD=$Y - fi - message "INFO" "DB Admin password is $DB_ADMIN_PWD" -} - -get_db_user() { - Y='' - read -p "Please enter database user [$DB_USER] " Y - if [ ! -e $Y ]; then - DB_USER=$Y - fi - message "INFO" "DB User is $DB_USER" -} - -get_db_file() { - Y='' - read -p "Please enter database config file [$DB_CONFIG] " Y - if [ ! -e $Y ]; then - DB_CONFIG=$Y - fi - message "INFO" "DB config path & file $DB_CONFIG" -} - -get_GH_start() { - Y='' - read -p "Shall GNU Health start automatically? [$GH_START] " Y - if [ ! -e $Y ]; then - GH_START=$Y - fi - message "INFO" "GNU Health start at boot $GH_START" -} - - -#----------------------------------------------------------------------------- -# verify input -#----------------------------------------------------------------------------- - -verify_input() { - echo ; - message "INFO" "DB Name is ..............$DB_NAME" - message "INFO" "DB Admin password is ....$DB_ADMIN_PWD" - message "INFO" "DB User is ..............$DB_USER" - message "INFO" "DB config path & file is $DB_CONFIG" - message "INFO" "GNU Health start at boot $GH_START" - read -p "Are these values correct? [y]es/[n]o/[a]bort " VAL - -} - -#----------------------------------------------------------------------------- -# Install -#----------------------------------------------------------------------------- - -setup() { - -# check is it runs as root - wai=`whoami` - - if [ $wai != "root" ]; then - message "ERROR" " This script must run as user 'root'" - bailout - fi - - VAL="n" - message "INFO" "Starting GNU Health setup for openSUSE V ${VERSION} ..." - message "INFO" "If the value displayed is OK, just hit to confirm" - - while [ ${VAL} != "y" ]; do - # (1) Get root password -# get_root_pw - - # (2) get Database name - get_db_name - - # (3) change login - get_db_admin - - message "WARNING" "Change the following parameter only if you know what you are doing..." - - # (4) DB user - get_db_user - - # (5) DB config file and path - get_db_file - - # (6) enable GNUHealth at start? - get_GH_start - - # (7) check if all are valid - verify_input - - # request input until all is OK: - if [ -e ${VAL} ]; then - message "ERROR" "Please enter y, n or a" - verify_input - else - - if [ ${VAL} = "y" ]; then - go_ahead - exit 0 - fi - if [ ${VAL} = "a" ]; then - exit 1 - fi - fi - done - -} - -#----------------------------------------------------------------------------- -# Parse command line -#----------------------------------------------------------------------------- - - -parse_command_line() -{ - if [ $# -eq 0 ]; then - help - fi - - case $1 in - version) show_version $@;; - update-deps) install_python_dependencies $@;; - setup) setup $@;; - help) help;; - *) echo $1: Unrecognized command; exit 1;; - esac -} - -parse_command_line "$@" +# To unify the gnuhealth-commands, the script was renamed to +# openSUSE-gnuhealth-setup +# please use this file instead. Thank you!