Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/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
--frontend Install Frontend packages
benedikt.kroening
committed
-dcs | --documents-collaboration
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
"
}
### 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
;;
benedikt.kroening
committed
-dcs|--documents-collaboration)
export INSTALL_DCS=true
shift
;;
--guard)
export INSTALL_GUARD=true
shift
benedikt.kroening
committed
;;
--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
benedikt.kroening
committed
# Install documents middleware and frontend related packages
if [ "$INSTALL_DOCUMENTS" = true ] ; then
benedikt.kroening
committed
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"
benedikt.kroening
committed
if [[ "${FRONTEND}" = true ]]; then
echo "Adding OX Documents frontend packages ..."
PACKAGES="${PACKAGES} open-xchange-documents-ui-static open-xchange-documents-help-*"
fi
installPackagesRetry "${PACKAGES}"
# 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
benedikt.kroening
committed
# Install and enable Documents collaboration server, client comes below
if [ "$INSTALL_DCS" = true ] ; then
${SCRIPT_DIR}/documents-collaboration.sh --install --server
benedikt.kroening
committed
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
benedikt.kroening
committed
# The documents collaboration client requires some special config
${SCRIPT_DIR}/documents-collaboration.sh --enable --client --restart
benedikt.kroening
committed
setOXProperty permissions "text,spreadsheet,presentation,presenter,document_preview" /opt/open-xchange/etc/permissions.properties
benedikt.kroening
committed
if [ "${INSTALL_GUARD}" = true ]; then
setOXProperty com.openexchange.capability.guard-docs true /opt/open-xchange/etc/guard-api.properties