-
benedikt.kroening authored
Relatime packages got removed
benedikt.kroening authoredRelatime packages got removed
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
documents.sh 4.84 KiB
#!/bin/bash
#
# Copyright (C) 2019 OX Software GmbH
#
# This file is part of OX Automation.
#
# OX Automation 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.
#
# OX Automation 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 OX Automation. If not, see <http://www.gnu.org/licenses/>.
#
#
# Authors:
# Benedikt Kroening <benedikt.kroening@open-xchange.com>
#
set -e
SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P)"
# sourcing some commonly used functions and executing basic checks
source ${SCRIPT_DIR}/../lib/common.bash
source ${SCRIPT_DIR}/../lib/setup.bash
checkRootPrivileges
detectDistribution
if [[ -z "${AS_OFFICE_VERSION}" ]]; then
# sourcing the default configuration to use
echo "Warning: Missing environment variable. Sourcing default versions file ..."
exportProperties ${SCRIPT_DIR}/../setup/versions
fi
## Help text
show_usage() {
echo -n "
Install Open-Xchange Guard packages and optionally enable it in config.
You can either install each component seperatly (manual cluster setup) or all at once.
Please keep in mind that most of this flags are already provided by the configuration.
$0 [OPTIONS]
--install The install flag
--enable Enable documents in config and restart the backend
--disable Disable (WIP, may not work)
--restart Wether or not to restart the all services after the action
--middleware Install middleware(api) packages only
--frontend Install Frontend packages
-dcs | --documents-collaboration
"
}
### reading config from command line; overriding defaults
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
show_usage
exit 0
shift
;;
--debug)
echo "WARNING: Debug flag set (--debug)"
set -x
shift
;;
--enable)
DOCUMENTS_ENABLE=true
shift
;;
--disable)
DOCUMENTS_ENABLE=false
shift
;;
--middleware)
MIDDLEWARE=true
shift
;;
--frontend)
FRONTEND=true
shift
;;
-dcs|--documents-collaboration)
export INSTALL_DCS=true
shift
;;
--guard)
export INSTALL_GUARD=true
shift
;;
--install)
export INSTALL_DOCUMENTS=true
shift
;;
# -k|--key)
# value="$2"
# shift
# shift
# ;;
--restart)
RESTART_OX=true
shift
;;
*) # unknown option
POSITIONAL+=("$1") # save it in an array for later
shift
;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
# Install documents middleware and frontend related packages
if [ "$INSTALL_DOCUMENTS" = true ] ; then
if [[ "${MIDDLEWARE}" = true ]]; then
echo "Adding OX Documents middleware packages ..."
PACKAGES="${PACKAGES} open-xchange-documentconverter-client open-xchange-documents-backend open-xchange-documents-templates open-xchange-documents-ui-common open-xchange-documents-ui-editors open-xchange-documentconverter-api"
fi
if [[ "${FRONTEND}" = true ]]; then
echo "Adding OX Documents frontend packages ..."
PACKAGES="${PACKAGES} open-xchange-documents-ui-static open-xchange-documents-help-*"
fi
if [[ -n "${PACKAGES}" ]]; then
installPackagesRetry "${PACKAGES}"
fi
# Updating UI themes if script exists
if [[ -f /opt/open-xchange/appsuite/share/update-themes.sh ]]; then
/opt/open-xchange/appsuite/share/update-themes.sh --if-needed
fi
fi
# Install and enable Documents collaboration server, client comes below
if [ "$INSTALL_DCS" = true ] ; then
${SCRIPT_DIR}/documents-collaboration.sh --install --server
fi
if [[ "${DOCUMENTS_ENABLE}" = true ]]; then
# The dcs config is placed here because it is mandatory for documents while the documentconverter part is optional (it has its own mw init scripts)
if [[ -f /usr/share/open-xchange-documents-collaboration/bin/initdcsdb.sh ]]; then
${SCRIPT_DIR}/../config/init-documents-collaboration.sh
fi
# The documents collaboration client requires some special config
${SCRIPT_DIR}/documents-collaboration.sh --enable --client --restart
setOXProperty permissions "text,spreadsheet,presentation,presenter,document_preview" /opt/open-xchange/etc/permissions.properties
if [ "${INSTALL_GUARD}" = true ]; then
setOXProperty com.openexchange.capability.guard-docs true /opt/open-xchange/etc/guard-api.properties
fi
elif [[ "${DOCUMENTS_ENABLE}" = false ]]; then
echo ""
# do something to disable it
fi
if [[ "${RESTART_OX}" = true ]]; then
restartService open-xchange
fi