#!/bin/bash #Licensed to the Apache Software Foundation (ASF) under one #or more contributor license agreements. See the NOTICE file #distributed with this work for additional information #regarding copyright ownership. The ASF licenses this file #to you 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 db_title OFBiz db_version 2.0 db_capb backup #DEBHELPER# if [ -f /usr/share/dbconfig-common/dpkg/config ]; then dbc_dbuser="ofbiz" dbc_dbname="ofbiz" dbc_dbtype="pgsql" dbc_dbtypes="pgsql, mysql, derby, hsql" #dbc_authmethod_admin="ident" dbc_authmethod_user="password" . /usr/share/dbconfig-common/dpkg/config dbc_go ofbiz $@ fi if [ -r "/etc/ofbiz/dbc-debconf.cfg" ]; then . "/etc/ofbiz/dbc-debconf.cfg" fi set_if() { if [ "$2" ]; then db_set "$1" "$2" return 0 fi return 1; } get_random_chars() { ( LANG=C LC_ALL=C length="$1" chars="" while :; do needed_length=$((${length} - ${#chars})) chars="$chars$(dd if=/dev/urandom count="${needed_length}" bs=1 2>/dev/null | sed -n -e 's/[^[:alnum:]]//g;p;q')" if [ "${#chars}" -ge "$length" ]; then break fi done echo $chars ) } get() { var_name="$1" debconf_name="$2" shift 2 if db_get "$debconf_name"; then if eval ! [ "\"\$$var_name\" = \"\$RET\"" ]; then while [ $# -gt 0 ]; do eval $1=1 shift done eval $var_name=\"\$RET\" fi else echo "Couldn't fetch '$debconf_name' from debconf!" exit 1 fi } if [ -r "/etc/ofbiz/debconf.cfg" ]; then eval `sed -n 's/^ofbiz\.admin\.\(port\|key\)=\(.*\)/ofbiz_admin_\1=\2;/p' "/etc/ofbiz/debconf.cfg" ` fi if [ "z" = "z$ofbiz_admin_port" ]; then ofbiz_admin_port="10523" fi #env LANG=C LC_ALL=C sed -n -e 's/[^[:alnum:]]//g;p;q' < /dev/urandom | cut -b1-12 #db_set ofbiz/admin-password ofbiz || true set_if ofbiz/admin-user "$ofbiz_admin_user" || true set_if ofbiz/admin-port "$ofbiz_admin_port" || true cmd="$1" shift version="$2" shift || true ofb_dc_admin_user() { db_input high ofbiz/admin-user || true } ofb_dc_admin_port() { db_input low ofbiz/admin-port || true } ofb_dc_get_dbcc() { . /etc/dbconfig-common/ofbiz.conf } ofb_dc_postgresql_fieldtype() { if [ "$dbc_dbtype" = "pgsql" ]; then db_input low ofbiz/fieldtype/postgres || true fi } declare -a ofb_dc_list ofb_dc_list=( ofb_dc_admin_user ofb_dc_admin_port # ofb_dc_get_dbcc ofb_dc_postgresql_fieldtype ) case "$cmd" in (configure|reconfigure) STATE=0 while :; do [[ $STATE = -1 ]] && exit 10 [[ $STATE = ${#ofb_dc_list[*]} ]] && break ${ofb_dc_list[$STATE]} if db_go; then STATE=$(($STATE + 1)) else STATE=$(($STATE - 1)) fi done ;; esac get ofbiz_admin_port ofbiz/admin-port db_stop if [ "z" = "z$ofbiz_admin_port" ]; then ofbiz_admin_port="10523" fi if [ "z" = "z$ofbiz_admin_key" ]; then ofbiz_admin_key="$(get_random_chars 32)" fi if [ -e "/etc/ofbiz/debconf.cfg" ]; then sed -i \ -e "s/^ofbiz.admin.port=\".*\"\$/ofbiz.admin.port=\"$ofbiz_admin_port\"/" \ -e "s/^ofbiz.admin.key=\".*\"\$/ofbiz.admin.key=\"$ofbiz_admin_key\"/" \ "/etc/ofbiz/debconf.cfg" else cat > "/etc/ofbiz/debconf.cfg.new" << _EOF_ ofbiz.admin.port=$ofbiz_admin_port ofbiz.admin.key=$ofbiz_admin_key _EOF_ chmod 640 "/etc/ofbiz/debconf.cfg.new" mv "/etc/ofbiz/debconf.cfg.new" "/etc/ofbiz/debconf.cfg" fi