summaryrefslogtreecommitdiffstats
path: root/build/apt/DEBIAN/postinst
diff options
context:
space:
mode:
Diffstat (limited to 'build/apt/DEBIAN/postinst')
-rwxr-xr-xbuild/apt/DEBIAN/postinst143
1 files changed, 143 insertions, 0 deletions
diff --git a/build/apt/DEBIAN/postinst b/build/apt/DEBIAN/postinst
new file mode 100755
index 0000000..f872508
--- /dev/null
+++ b/build/apt/DEBIAN/postinst
@@ -0,0 +1,143 @@
+#!/bin/bash
+
+################################################################################
+#
+# Copyright (c) 2010 penSec.IT UG (haftungsbeschränkt)
+# http://www.pensec.it
+# mail@pensec.it
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+#
+################################################################################
+
+
+
+set -e
+. /usr/share/debconf/confmodule
+
+if [ -n "$ETHERPAD_DEBUG" ]; then
+ echo "now debugging $0 $@"
+ set -x
+fi
+
+db_version 2.0
+
+
+
+
+
+#####
+#
+# Propts the user for a configuration value and writes it into a property file
+#
+# @param $1 Name of the debconfig template to prompt
+# @param $2 File to write the answer to
+# @param $3 deprecated
+#
+function configuration_property() {
+ TEMPLATE="${1}"
+ PROPERTY_FILE="/etc/etherpad/properties/${2}"
+ PLACEHOLDER="${3}"
+
+ PROPERTY=""
+ if [ -f "${PROPERTY_FILE}" ]; then
+ PROPERTY=`cat "${PROPERTY_FILE}"`
+ fi
+ db_input high "etherpad-%BRANCH%/${TEMPLATE}" || true
+ db_go
+
+ db_get "etherpad-%BRANCH%/${TEMPLATE}"
+ if [ "" != "$RET" ]; then
+ PROPERTY="$RET"
+ fi
+
+ echo "${PROPERTY}" > "${PROPERTY_FILE}"
+}
+#
+#####
+
+
+
+case "$1" in
+
+ configure)
+
+ # Create system user
+ if ! getent passwd etherpad > /dev/null ; then
+ echo 'Adding system-user for etherpad' 1>&2
+ adduser --system --group --quiet \
+ --home /usr/share/etherpad --no-create-home \
+ --disabled-login --force-badname etherpad
+ fi
+
+
+ # Give user the rights to write into the log & data directory
+ if [ -d "/var/log/etherpad" ]; then
+ EMPTY_STATEMENT="true"
+ else
+ mkdir -p "/var/log/etherpad"
+ fi
+ chown -R etherpad:etherpad "/var/log/etherpad"
+
+ if [ -d "/usr/share/etherpad/etherpad/data" ]; then
+ EMPTY_STATEMENT="true"
+ else
+ mkdir -p "/usr/share/etherpad/etherpad/data"
+ fi
+ chown -R etherpad:etherpad "/usr/share/etherpad/etherpad/data"
+
+
+ # Give user the rights do write everywhere, did not yet figure
+ # out which rights are necessary, exactly
+ chown -R etherpad:etherpad "/usr/share/etherpad"
+ ;;
+
+esac
+
+
+
+#####
+#
+# Get configuration properties
+#
+configuration_property "is_production" "is-production" "IS_PRODUCTION"
+configuration_property "admin_password" "admin-password" "ADMIN_PASSWORD"
+configuration_property "port" "port" "PORT"
+configuration_property "database_host" "database-host" "DATABASE_HOST"
+configuration_property "database_port" "database-port" "DATABASE_PORT"
+configuration_property "database_name" "database-name" "DATABASE_NAME"
+configuration_property "database_username" "database-username" "DATABASE_USERNAME"
+configuration_property "database_password" "database-password" "DATABASE_PASSWORD"
+#
+#####
+
+
+
+
+
+#####
+#
+# MySQL-Autosetup should be discussed. Simply calling setup-myql-db.sh is
+# insufficient
+#
+# # Auto-setup database
+# db_input medium "etherpad-%BRANCH%/setup_database" || true
+# db_go
+#
+# db_get "etherpad-%BRANCH%/setup_database"
+# if [ "$RET" = "true" ]; then
+# # TODO
+# fi
+#
+#####
+