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