#!/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 " $0 [OPTIONS] --install The install flag --enable Enable documents in config and restart the backend --disable Disable (WIP, may not work) --server Set with install flag in order to install dc --client Only configure documentconverter client with the provided remote dc (defaults to localhost) --frontend --restart " } ### 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) DOCUMENTCONVERTER_ENABLE=true shift ;; --disable) DOCUMENTS_ENABLE=false shift ;; --server) SERVER=true shift ;; --client) CLIENT=true shift ;; --frontend) FRONTEND=true shift ;; --install) export INSTALL_DOCUMENTCONVERTER=true shift ;; --restart) RESTART_OX=true shift ;; # -k|--key) # value="$2" # shift # shift # ;; *) # unknown option POSITIONAL+=("$1") # save it in an array for later shift ;; esac done set -- "${POSITIONAL[@]}" # restore positional parameters if [ "$INSTALL_DOCUMENTCONVERTER" = true ] ; then if [[ "${SERVER}" = true ]]; then echo "Adding OX documentconverter server packages ..." PACKAGES="readerengine open-xchange-documentconverter-server open-xchange-documentconverter-api " installPackagesRetry "${PACKAGES}" fi # client will be installed by documents, frontned does not require packages fi if [[ "${DOCUMENTCONVERTER_ENABLE}" = true ]]; then restartService open-xchange-documentconverter-server sleep 5 INIT_STATE_FILE="/opt/open-xchange/etc/21-init-documentconverter-done" if [ ! -f ${INIT_STATE_FILE} ]; then # waitPort 8008 oder so? if [[ "${SERVER}" = true ]]; then echo "Doing some dc-server config" fi if [[ "${CLIENT}" = true ]]; then if [[ -z "${CONVERTER_REMOTE_URL}" ]]; then CONVERTER_REMOTE_URL="http://localhost:8008/documentconverterws" echo "WARNING: Converter URL not provided, using fallback: $CONVERTER_REMOTE_URL" # TODO: This will work on singlenode only. # In order to get this working in cluster envs use the apache proxy balancer fi setOXProperty com.openexchange.documentconverter.client.remoteDocumentConverterUrl "${CONVERTER_REMOTE_URL}" /opt/open-xchange/etc/documentconverter-client.properties echo "Doing some dc-client config magic" fi if [[ "${FRONTEND}" = true ]]; then echo "WARNING: Frontend balancer config for documentconverter is not yet implemented" fi echo "$(date)" >> ${INIT_STATE_FILE} else echo "WARNING: This scripts has already been executed and will be skipped!" sleep 5 fi elif [[ "${DOCUMENTCONVERTER_ENABLE}" = false ]]; then echo "" # do something to disable it fi if [[ "${RESTART_OX}" = true ]]; then restartService open-xchange fi