aboutsummaryrefslogblamecommitdiffstats
path: root/build/apt/DEBIAN/postinst
blob: f87250835dafaab16b87fb855e222581c5eff943 (plain) (tree)
1
2
3
4
5
6
7
8







                                                                                


                                                                               
  






                                                                               




















                                                                                
                                                                              
 


                                                    





                                                     



                                                 







































































                                                                                           















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