#!/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