psa-api-rpc-8.4.0-suse10.0.build84080425.20 T > D
, 0 @ fadb5cff16529ea2e2fed7b32d1de8a77e84a326 LMLYA] Q : > 5 _ ? O d . F
; A H R vD N w| N x N
x N y N z N
( N ` N N l N
( $ > * @ 2 B : G d N H N I N X $ Y , Z ` [ l \ p N ] N ^ - b % d ) e . f 4 k 6 l = C psa-api-rpc 8.4.0 suse10.0.build84080425.20 Plesk API RPC interface Plesk API provides the Plesk management interface for applications.
This package provides the HTTP RPC XML interface for controlling Plesk. Hbsuse10x64.plesk.ru ?Parallels Commercial license Tools http://www.parallels.com/products/plesk linux noarch #!/bin/sh
#
# Copyright (c) 1999-2008 Parallels
# All rights reserved
#
#
# Plesk script
#
remove_tmp_state()
{
if [ -d "/tmp/.state" ]; then
rm -Rf "/tmp/.state" >> $product_log 2>&1
fi
}
true apache_status_linux_debian apache_stop_BSD
apache_status_linux_debian()
{
get_pid "/usr/sbin/apache2" false
local pid=$common_var
if test "$pid" -ne 1; then
# running
return 0
fi
return 1
}
apache_stop_BSD()
{
local apache_script
if [ "$std_to_pkg" -ne 0 ]; then
apache_script="$PRODUCT_ROOT_D/rc.d/httpd"
else
apache_script="$PRODUCT_RC_D/$apache_service_name"
fi
$apache_script stop 2>/dev/null
}
api_rpc_create_persistent_tables()
{
inten="create persistent database storage"
echo_try $inten
$mysql < ${PRODUCT_ROOT_D}/etc/api-rpc/api-rpc_db.sql
if [ "X$?" = "X0" ]; then
suc
else
warn "database initialization"
fi
}
#
# Upgrade triggers should be clever enough to recognize necessity of upgrade
#
upgrade_api_75()
{
if db_test_table secret_keys; then
# secret_keys was created - at least 8.0 version
return
fi
$mysql < ${PRODUCT_ROOT_D}/etc/api-rpc/api-rpc_db_upgrade_750.sql
}
upgrade_api_800()
{
if db_test_column_enum_value exp_event event_type exceeded; then
# 'exceeded' was added in 8.0.1
return
fi
$mysql < ${PRODUCT_ROOT_D}/etc/api-rpc/api-rpc_db_upgrade_800.sql
}
upgrade_api_801()
{
if db_test_column_enum_value exp_event obj_class domain_alias; then
# domain_alias was added in 8.0.1 update
return
fi
$mysql < ${PRODUCT_ROOT_D}/etc/api-rpc/api-rpc_db_upgrade_801.sql
}
upgrade_api_830()
{
$mysql < ${PRODUCT_ROOT_D}/etc/api-rpc/api-rpc_db_upgrade_830.sql
}
upgrade_api_840()
{
$mysql < ${PRODUCT_ROOT_D}/etc/api-rpc/api-rpc_db_upgrade_840.sql
}
#
# End of upgrade triggers
#
api_rpc_upgrade_persistent_tables()
{
inten="upgrade persistent database storage"
echo_try $inten
# As we don't know previous version of the package (for all packaging systems)
# all available database upgrade scripts should be executed.
upgrade_api_75 && \
upgrade_api_800 && \
upgrade_api_801 && \
upgrade_api_830 && \
upgrade_api_840
if [ "X$?" = "X0" ]; then
suc
else
warn "database upgrade"
fi
}
# db_test test_query awk_script
# Runs test_query and processes it with awk_script. If the output is
# not empty, return 0, otherwise return 1. Hint: supply '1' for
# awk_script to test just for the presence of any output.
db_test()
{
local any_db=
eval `sh_get_args '--any-db) any_db=yes;;'`
local test_query="$1"
local awk_script="$2"
if [ -n "$any_db" ]; then
local output="`mysql_raw_anydb -e \"$test_query\" 2>>\"$product_log\"`"
else
local output="`mysql_raw -e \"$test_query\" 2>>\"$product_log\"`"
fi
local status=$?
if [ "$status" -ne 0 ]; then
p_echo "$output"
die "run the following SQL query: $1"
fi
echo -n "$output" | awk -F '\t' -- "$awk_script" | test `wc -l` -ne 0
}
# db_test_table table
# Returns 0 if the table exists
db_test_table()
{
local table="$1"
db_test "SHOW TABLES LIKE '$table'" 1
}
# db_test_column_enum_value
# Returns O if table.column contains value in enum description
db_test_column_enum_value()
{
local table="$1"
local column="$2"
local value="$3"
db_test "DESC \`$table\` \`$column\`" "/[\'\"]$value[\'\"]/ { print 1 }"
}
proftpd_super_server_config()
{
local action="$1"
case "$superserver" in
inetd)
ftp_rec="ftp stream tcp nowait root $PROFTPD_ROOT/sbin/proftpd proftpd -c $PROFTPD_ETC_D/proftpd.conf"
;;
xinetd)
ftp_rec="service ftp
{
socket_type = stream
protocol = tcp
wait = no
disable = no
user = root
instances = UNLIMITED
server = $PROFTPD_ROOT/sbin/proftpd
server_args = -c $PROFTPD_ETC_D/proftpd.conf
}"
;;
*)
die "Super server name unknown"
;;
esac
super_server_action "$action" ftp "$ftp_rec"
}
# Keep for compatibility issue
check_mysql()
{
mysql_test_connection
}
# Usage: pleskrc
pleskrc()
{
[ 2 -le $# ] || die "Not enough arguments"
local service_name=$1
local action=$2
local ret=0
local inten
shift
shift
# Now check redefined functions
if test "$machine" = "linux" && is_function "${service_name}_${action}_${machine}_${linux_distr}"; then
"${service_name}_${action}_${machine}_${linux_distr}" $@
return $?
elif is_function "${service_name}_${action}_${machine}"; then
"${service_name}_${action}_${machine}" $@
return $?
elif is_function "${service_name}_${action}"; then
"${service_name}_${action}" $@
return $?
fi
# Not redefined - call default action
eval "service=\$${service_name}_service"
[ -n "$service" ] || die "Empty service name for $service_name"
inten="$action service $service"
[ "$action" = "status" -o "$action" = "exists" ] || echo_try "$inten"
if [ -x "/usr/sbin/invoke-rc.d" ]; then
action_cmd="/usr/sbin/invoke-rc.d $service"
elif [ -x "/sbin/service" ]; then
action_cmd="/sbin/service $service"
elif [ -x "$SYSTEM_RC_D/$service" ]; then
action_cmd="$SYSTEM_RC_D/$service"
elif [ ! -z ${PRODUCT_RC_D} -a -x "$PRODUCT_RC_D/$service" ]; then
action_cmd="$PRODUCT_RC_D/$service"
fi
if [ "$action" = "exists" ]; then
[ -n "$action_cmd" ] && return 0 || return 1
else
[ -z "$action_cmd" ] && die "Unable to handle $service"
fi
case "$action" in
start)
pleskrc $service_name status || $action_cmd $action $@
;;
stop)
if pleskrc $service_name status; then
$action_cmd $action $@
else
true
fi
;;
restart)
if pleskrc $service_name status; then
$action_cmd "restart" $@
else
$action_cmd "start" $@
fi
;;
reload)
if pleskrc $service_name status; then
$action_cmd "reload" $@
else
true
fi
;;
status)
$action_cmd "status"
;;
*)
$action_cmd $action $@
;;
esac
ret="$?"
if [ "$action" != "status" ]; then
[ "$ret" -eq 0 ] && suc || warn $inten
fi
return $ret
}
is_function()
{
local type_output="`LANG=C LC_ALL=C LC_MESSAGES=C type \"$1\" 2>/dev/null | head -n 1`"
case "$type_output" in
*function)
return 0
;;
*)
return 1
;;
esac
}
p_echo()
{
echo "$*" >> "$product_log" 2>&1
echo "$*"
}
pnnl_echo()
{
echo -n "$*" >> "$product_log" 2>&1
echo -n "$*"
}
die()
{
PACKAGE_SCRIPT_FAILED="$*"
if [ "X$trigger_uninstall" != "X1" ]; then
printf "\a\a"
p_echo
p_echo "ERROR while trying to $*"
echo "Check the error reason(see log file: ${product_log}), fix and try again"
p_echo
if [ "X$do_patch" != "X1" -a "X$do_reconfigure" != "X1" ]; then
p_echo "Aborting..."
p_echo
fi
fi
smart_undo_install
selinux_close
exit 1
}
warn()
{
local inten
inten="$1"
p_echo
p_echo "WARNING!"
pnnl_echo "During the $inten found some problems"
echo "(see log file: ${product_log})"
p_echo
p_echo "Continue..."
p_echo
}
echo_try()
{
msg="$*"
pnnl_echo " Trying to $msg... "
}
suc()
{
p_echo "done"
}
mk_backup()
{
target="$1"
dup="$2"
opts="$3"
if [ -L "$target" ]; then
rm "$target"
elif [ -$opts "$target" ]; then
if [ ! -$opts "$target.$product_suffo" ]; then
case "$dup" in
mv)
mv -f $target $target.$product_suffo || die "mv -f $target $target.$product_suff"
;;
cp)
cp -fp $target $target.$product_suffo || die "cp -fp $target $target.$product_suff"
;;
*)
p_echo " mk_backup: wrong option -- must be 'cp' or 'mv'"
die "mk_backup"
;;
esac
else
case "$dup" in
mv)
mv -f $target $target.$product_suff || die "mv -f $target $target.$product_suff"
;;
cp)
cp -fp $target $target.$product_suff || die "cp -fp $target $target.$product_suff"
;;
*)
p_echo " mk_backup: wrong option -- must be 'cp' or 'mv'"
die "mk_backup"
;;
esac
fi
else
case "$opts" in
f|d)
;;
*)
p_echo " mk_backup: wrong option -- must be 'f' or 'd'"
die "mk_backup"
;;
esac
fi
}
detect_vz()
{
local vzcheck_file
PLESK_VZ=0
vzcheck_file="/proc/self/status"
if [ ! -f ${vzcheck_file} ]; then
return 1;
fi
grep -q -E '^envID\:[[:space:]]*([[:digit:]]+)$' < ${vzcheck_file} >/dev/null 2>&1
if [ $? -eq 0 ]; then
PLESK_VZ=1
return 0;
fi
return 1;
}
call_optional_function()
{
export LANG=C LC_MESSAGES=C LC_ALL=C
local type_output="`type \"$1\" 2>/dev/null | head -n 1`"
case "$type_output" in
*function)
"$@"
;;
*)
return 0
;;
esac
}
sh_get_args()
{
echo 'while true; do case "$1" in '"$1"'*) break;; esac; shift; done'
}
sequence()
{
if type seq; then
seq $*
elif type jot; then
jot $*
else
die "Unable to find seq or jot command"
fi
}
superserver_reconfig()
{
pleskrc superserver reload
}
configure_xinetd_compat()
{
local inten="Configure xinetd compatibility mode with $superserver_service"
if [ "$linux_distr" = "debian" -o "$linux_distr" = "ubuntu" ]; then
[ "$superserver_service" = "xinetd" ] || return 1
[ -f "/etc/default/xinetd" ] || return 1
grep -q 'XINETD_OPTS=.*-inetd_compat' /etc/default/xinetd && return 1
echo_try $inten
if ! grep -q '^\s*XINETD_OPTS' /etc/default/xinetd; then
echo 'XINETD_OPTS="-inetd_compat"' >>/etc/default/xinetd
suc
return 0
fi
eval `grep '^\s*XINETD_OPTS' /etc/default/xinetd`
XINETD_OPTS="$XINETD_OPTS -inetd_compat"
local tmp_file=`mktemp /tmp/xinetdXXXXXX`
sed -e "s/XINETD_OPTS.*/XINETD_OPTS=\"$XINETD_OPTS\"/g" /etc/default/xinetd > $tmp_file && mv -f $tmp_file /etc/default/xinetd
suc
return 0
fi
return 1
}
super_server_action()
{
local in out
local action="$1"
local service="$2"
local template="$3"
inten="$action $service service record for $superserver_service daemon"
case "$action" in
remove) ;;
register)
[ -z "$template" ] && die "Template for super server $action was not defined"
;;
comment|disable)
;;
configure)
case "$superserver_mode" in
native)
register_service $superserver_service defaults defaults
;;
compat)
configure_xinetd_compat && pleskrc superserver restart
;;
*)
die "Mode for $superserver_service was not defined"
;;
esac
return 0
;;
*)
die "Some arguments was not defined or defined incorrect for action with super server"
;;
esac
case "$superserver" in
inetd)
super_server_modify_inetd "$service" "$action" "$template"
;;
xinetd)
super_server_modify_xinetd "$service" "$action" "$template"
;;
*)
die "Unable to define super server type"
;;
esac
if [ $? -ne 0 ]; then
die $inten
fi
}
super_server_modify_inetd()
{
local service="$1"
local action="$2"
local template="$3"
case "$action" in
comment|disable)
grep -q "^$service[[:space:]]" $superserver_conf || return 0
sed -e "s|^$service|#$service|g" < "$superserver_conf" > "$superserver_conf.tmp" \
&& mv -f "$superserver_conf.tmp" "$superserver_conf" \
|| return 1
;;
remove)
if [ -x /usr/sbin/update-inetd ]; then
/usr/sbin/update-inetd --enable "$service"
/usr/sbin/update-inetd --remove "$service"
else
grep -q "^$service[[:space:]]" $superserver_conf || return 0
sed -e "s|^$service[[:space:]].*||g" < "$superserver_conf" > "$superserver_conf.tmp" \
&& mv -f "$superserver_conf.tmp" "$superserver_conf" \
|| return 1
fi
;;
register)
if [ -x /usr/sbin/update-inetd ]; then
/usr/sbin/update-inetd --enable "$service"
/usr/sbin/update-inetd --remove "$service"
/usr/sbin/update-inetd --add "$template"
else
egrep -q "$template" $superserver_conf
if [ "$?" -ne "0" ]; then
super_server_modify_inetd comment $service && \
echo "$template" >> $superserver_conf || return 1
fi
fi
;;
esac
return 0
}
super_server_modify_xinetd()
{
local file
local service="$1"
local action="$2"
local template="$3"
for file in $superserver_dir/*; do
grep -q "$service" $file 1>$product_log 2>&1 || continue
case "$action" in
remove)
awk "/^[[:space:]]*(#|[[:space:]])*service[[:space:]]+$service($|[[:space:]]+)/,/.*}.*/ \
{next;} {print}
" <$file >$file.tmp \
&& mv -f $file.tmp $file || return 1
;;
comment)
awk "/^[[:space:]]*service[[:space:]]+$service($|[[:space:]]+)/,/.*}.*/ \
{ print \"#\"\$0; next; }
{print}
" < $file > $file.tmp \
&& mv -f $file.tmp $file || return 1
;;
esac
done
case "$action" in
register)
echo "$template" > "$superserver_dir/${service}_psa" || return 1
;;
disable)
[ -f "$superserver_dir/${service}_psa" ] && mv -f "$superserver_dir/${service}_psa" "$superserver_dir/${service}.psa"
;;
esac
return 0
}
true superserver_status_linux_debian
superserver_status_linux_debian()
{
get_pid "$superserver_binary" false
local pid=$common_var
if test "$pid" -ne 1; then
# running
return 0
fi
return 1
}
# here goes functions
package_script_begin_rpm()
{
package_script_begin
}
package_script_end_rpm()
{
package_script_end
}
package_script_begin()
{
local title
if [ "X$process" = "X" ]; then
if [ "X$do_reconfigure" = "X1" ]; then
process="reconfiguration"
elif [ "X$do_upgrade" = "X1" ]; then
process="upgrade"
else
process="installing"
fi
fi
product_log="/tmp/${PACKAGE_NAME}_${PACKAGE_VERSION}_${PACKAGE_RELEASE}_${process}.`date +%y%m%d.%H.%M`.log"
product_problems_log="/tmp/${PACKAGE_NAME}_${PACKAGE_VERSION}_${PACKAGE_RELEASE}_problems.`date +%y%m%d.%H.%M`.log"
title="`package_script_log_title`"
echo "START $title" >>"$product_log" \
&& echo "START $title" >>"$product_problems_log" \
&& chmod 600 "$product_log" "$product_problems_log" \
|| {
echo "Cannot write installation log $product_log, $product_problems_log" >&2
exit 1
}
problems_occured=0
product_default_conf
initial_conf
set_common_params
read_conf
}
package_script_end()
{
local title
title="`package_script_log_title`"
packagemng_set_dirty_flag
echo "STOP $title" >>"$product_log"
echo "STOP $title" >>"$product_problems_log"
}
package_script_log_title()
{
local stage
case "$do_upgrade" in
0) stage="installing";;
1) stage="upgrading";;
*) stage="installing";;
esac
if [ -n "$PACKAGE_DEB_ACTION" ]; then
stage="$stage (deb action: $PACKAGE_DEB_ACTION)"
fi
echo "$PACKAGE_NAME-$PACKAGE_VERSION-$PACKAGE_RELEASE $stage AT `date`"
}
# NAME VERSION RELEASE [DEB_ACTION]
package_script_call_main_function()
{
package_script_call_main_function_begin "$@"
for package_func in $1; do
if ! call_optional_function "$package_func"; then
break
fi
done
package_script_end_handler ok
}
package_script_call_main_function_begin()
{
PACKAGE_NAME="$2"
PACKAGE_VERSION="$3"
PACKAGE_RELEASE="$4"
PACKAGE_DEB_ACTION="$5"
package_script_begin_this_system
trap "package_script_end_handler error" HUP PIPE INT QUIT TERM EXIT
}
package_script_end_handler()
{
case "$1" in
error)
if [ -z "$PACKAGE_SCRIPT_FAILED" ]; then
PACKAGE_SCRIPT_FAILED="Package script failed"
fi
;;
ok) PACKAGE_SCRIPT_FAILED=
;;
esac
trap - EXIT
package_script_end_this_system
}
package_script_begin_this_system()
{
package_script_begin_rpm
}
package_script_end_this_system()
{
package_script_end_rpm
}
get_pid()
{
local i
local ex_f="$1"
local opt="$2"
local owner="$3"
local min_num="1"
# Use pidof by default, bug 121868
if type pidof >/dev/null 2>&1; then
for pid in `pidof -o $$ -o $PPID -o %PPID -x $ex_f`; do
# Check for owner
[ "$opt" = "true" -a "$owner" != "`ps -p $pid -o ruser=`" ] && continue
min_num=$pid
break
done
common_var=$min_num
return $min_num
fi
case "$opt" in
false)
for i in `$ps_long | grep $ex_f | grep -v grep | grep -v httpsdctl | grep -v apachectl | awk '{print $2}' -`; do
min_num=$i
break
done
;;
true)
for i in `$ps_long | grep $ex_f | grep -v grep | grep -v httpsdctl | grep -v apachectl | grep "$owner" | awk '{print $2}' -`; do
min_num=$i
break
done
;;
*)
p_echo "get_pid: wrong parameter"
die "get_pid $ex_f $opt $owner"
;;
esac
common_var=$min_num
return $min_num
}
kill_pids()
{
ex_f="$1"
owner="$2"
for i in `$ps_long | grep $ex_f | grep -v grep | grep -v httpsdctl | grep -v apachectl | grep $owner | awk '{print $2}' -`; do
if [ $i -gt 1 ]; then
$K_TERM $i >> $product_log 2>&1
fi
done
}
delete_user()
{
local rm_user
rm_user="$1"
# if it is mailman user, remove its crontab from system
if [ "X${rm_user}" = "X${mailman_user}" ]; then
inten="remove crontab of ${rm_user}"
echo "y" | $crontab -u "${mailman_user}" -r >> $product_log 2>&1 || die "$inten"
fi
inten="remove user $rm_user"
echo_try "$inten"
case "$machine" in
BSD)
echo "y" | pw userdel $rm_user>> $product_log 2>&1 && suc
pwd_mkdb /etc/master.passwd >> $product_log 2>&1
;;
linux|solaris)
userdel $rm_user>> $product_log 2>&1 && suc || die "$inten"
;;
Darwin)
niutil -destroy / /users/"$rm_user" >> $product_log 2>&1 && suc || die "$inten"
reload_darwin_netinfo
;;
esac
}
delete_group()
{
local rm_group
rm_group="$1"
inten="remove group $rm_group"
echo_try "$inten"
case "$machine" in
BSD)
pw groupdel $rm_group>> $product_log 2>&1
pwd_mkdb /etc/master.passwd >> $product_log 2>&1
;;
linux|solaris)
mk_backup "/etc/group" cp f
if [ -f "/etc/group" ]; then
sed -e "/$rm_group/d" < /etc/group > /etc/group.tmp || die $inten
mv -f /etc/group.tmp /etc/group >> $product_log 2>&1
if [ "$?" -ne 0 ]; then
rsr_backup "/etc/group" cp f
die $inten
fi
fi
;;
Darwin)
niutil -destroy / /groups/"$rm_group" >> $product_log 2>&1 && suc || die "$inten"
reload_darwin_netinfo
;;
esac
suc
}
reload_darwin_netinfo()
{
if [ -f /var/run/memberd.pid ]; then
kill -HUP `cat /var/run/memberd.pid`
else
SystemStarter start memberd
fi
return 0
}
initial_conf()
{
DEMO_VERSION="no"
PRODNAME="psa"
PRODUCT_NAME="Plesk"
product_full="Plesk"
product=${PRODNAME}
PRODUCT_FULL_NAME="Plesk"
product_etc="/etc/${PRODNAME}"
prod_conf_t="/etc/psa/psa.conf"
prodkey="$product_etc/$PRODNAME.key"
minimal_changes="0"
MYSQL_VERS="4.1.18"
POSTGRESQL_VERS="7.4.11"
EXTERNAL_PACKAGES=""
EXTERNAL_PACKAGES_DIR=""
BUILDER_UID="10007"
PERL5LIB="/usr/local/psa/lib/perl5/site_perl/5.8.7:/usr/local/psa/lib/perl5/site_perl/5.8.7/x86_64-linux-thread-multi"
export PERL5LIB
support_contact="http://www.parallels.com/support"
sales_email="sales@parallels.com"
product_version="8.4.0"
product_db_version="0840"
product_build="84080425.20"
conceived_os_vendor=SuSE
conceived_os_version="10.0"
osrels="suse10.0"
# This variable contains all versions, which is supported by
# cumulative upgrade
known_product_versions="60 70 71 75 80 81 82 83 84"
prev_product="plesk"
prev_clients_group="${prev_product}cln"
clients_group="${product}cln"
clients_GID=10001
services_group="${product}serv"
services_GID=10003
product_suff="saved_by_${product}".`date "+%m.%d;%H:%M"`
product_suffo="saved_by_${product}"
PREV_PRODUCT_ROOT_D="/usr/local/${prev_product}"
# plesk default password
if [ "X$DEMO_VERSION" = "Xyes" ]; then
PRODUCT_DEFAULT_PASSWORD="plesk"
else
PRODUCT_DEFAULT_PASSWORD="setup"
fi
}
read_conf()
{
if [ -s $prod_conf_t ]; then
tmp_var=`perl -e 'undef $/; $_=<>; s/#.*$//gm;
s/^\s*(\S+)\s*/$1=/mg;
print' $prod_conf_t`
eval $tmp_var
else
if [ "X$do_upgrade" = "X1" ]; then
[ 0$ignore_miss_conf -ne 1 ] && p_echo "Unable to find product configuration file: $prod_conf_t"
return 1
fi
fi
return 0
}
get_my_cnf_param()
{
local my_cnf cnf_files
cnf_files="/etc/my.cnf /etc/mysql/my.cnf /var/db/mysql/my.cnf"
for my_cnf in ${cnf_files}; do
if [ -f ${my_cnf} ]; then
break
fi
done
[ -f ${my_cnf} ] && r=`perl -e '$p="'"$1"'";
undef $/; $_=<>; s/#.*$//gm;
/\[mysqld\](.*?)\[/sg;
$_=substr($1, rindex $1,"$p") and
/$p\s*=(.*)/m and print $1
' ${my_cnf}`
echo $r
}
get_mysql_socket()
{
mysql_socket="/var/lib/mysql/mysql.sock"
local mysqlsock=`get_my_cnf_param socket`
local MYSQL_SOCKETS="/var/lib/mysql/mysql.sock /tmp/mysql.sock /var/run/mysqld/mysqld.sock"
for i in $mysql_socket $mysqlsock $MYSQL_SOCKETS; do
if [ -S "$i" ]; then
MYSQL_UNIX_PORT=$i
export MYSQL_UNIX_PORT
mysql_socket="$i"
break
fi
done
}
#default values
product_default_conf()
{
PRODUCT_ROOT_D=/usr/local/psa
PRODUCT_RC_D=/etc/init.d
PRODUCT_ETC_D=/usr/local/psa/etc
HTTPD_VHOSTS_D=/srv/www/vhosts
HTTPD_CONF_D=/etc/apache2
HTTPD_INCLUDE_D=/etc/apache2/conf.d
HTTPD_BIN_D=/usr/bin
HTTPD_LOG_D=/var/log/apache2
HTTPD_SERVICE=apache2
QMAIL_ROOT_D=/var/qmail
QMAIL_MAILNAMES_D=/var/qmail/mailnames
RBLSMTPD=/usr/sbin/rblsmtpd
COURIER_IMAP_ROOT_D=/
FTPD_CONF=/etc/proftpd.conf
FTPD_CONF_INC=/etc/proftpd.include
FTPD_BIN_D=/usr/bin
FTPD_VAR_D=/var/run/proftpd
FTPD_SCOREBOARD=/var/run/proftpd/scoreboard
NAMED_RUN_ROOT_D=/var/lib/named
NAMED_OPTIONS_CONF=/etc/named.conf.include.plesk-options
NAMED_ZONES_CONF=/etc/named.conf.include.plesk-zones
WEB_STAT=/usr/bin/webalizer
LOGROTATE=/usr/local/psa/logrotate/sbin/logrotate
MYSQL_VAR_D=/var/lib/mysql
MYSQL_BIN_D=/usr/bin
PGSQL_DATA_D=/var/lib/pgsql/data
PGSQL_BIN_D=/usr/bin
DUMP_D=/var/lib/psa/dumps
MAILMAN_ROOT_D=/usr/lib/mailman
MAILMAN_VAR_D=/var/lib/mailman
PYTHON_BIN=/usr/bin/python2.4
CATALINA_HOME=/usr/share/tomcat5
DRWEB_ROOT_D=/opt/drweb
DRWEB_ETC_D=/etc/drweb
GPG_BIN=/usr/bin/gpg
TAR_BIN=/bin/tar
CURL_CA_BUNDLE_FILE=/usr/share/curl/curl-ca-bundle.crt
AWSTATS_ETC_D=/etc/awstats
AWSTATS_BIN_D=/srv/www/cgi-bin/awstats
AWSTATS_TOOLS_D=/usr/share/awstats
AWSTATS_DOC_D=/usr/share/apache2/icons/awstats
OPENSSL_BIN=/usr/bin/openssl
LIB_SSL_PATH=/lib/libssl.so
LIB_CRYPTO_PATH=/lib/libcrypto.so
CLIENT_PHP_BIN=/usr/local/psa/bin/php-cli
}
# Warning! use this function only for Linux not for FreeBSD
# This function tries to register service in different ways
# call register_service qmail priority levels_start levels_stop
# Only first parameter is necessessary
register_service_linux(){
local name=$1
local levels_start=$2
local levels_stop=$3
local priority=$4
local updatercd="/usr/sbin/update-rc.d"
local chkconfig="/sbin/chkconfig"
local insserv="/sbin/insserv"
if [ -z "$name" ]; then
return 0
fi
[ -z "$priority" ] && priority=20
local inten="register service $name"
echo_try $inten
if [ -x "$updatercd" ]; then
p_echo " using $updatercd"
if [ "X$levels_start" != "Xdefaults" -a -n "$levels_start" ]; then
start="start 20 $levels_start ."
fi
if [ "X$levels_stop" != "Xdefaults" -a -n "$levels_stop" ]; then
stop="stop 20 $levels_stop ."
fi
if [ -z "$start$stop" ]; then
$updatercd $name defaults 20 || warn $inten
else
$updatercd $name $start $stop || warn $inten
fi
elif [ -x "$insserv" ]; then
p_echo " using $insserv"
$insserv -f $name >/dev/null 2>&1 || warn $inten
elif [ -x "$chkconfig" ]; then
p_echo " using $chkconfig"
$chkconfig --add $name || warn $inten
if [ "X$levels_start" != "Xdefaults" -a -n "$levels_start" ]; then
$chkconfig --level `echo $levels_start | tr -d ' '` $name on || warn $inten
fi
if [ "X$levels_start" != "Xdefaults" -a -n "$levels_stop" ]; then
$chkconfig --level `echo $levels_stop | tr -d ' '` $name off || warn $inten
fi
else
die "Unable to find suitable application for register: $updatercd, $chkconfig or $insserv"
fi
suc
}
#Need for register/unregister services into /etc/rc.conf for BSD OSes.
#Create or change strings such as service_option_variable="variable"
rc_service()
{
local service="$1"
local option="$2"
local variable="$3"
local comment="$4"
local config="/etc/rc.conf"
if [ "X$variable" = "Xdefault" ]; then
remove_option_string "${service}_${option}" "$config"
return 0
fi
if [ ! -f /etc/rc.conf ]; then
die 'File /etc/rc.conf not found!'
fi
if [ "X$service" = "X" -o "X$option" = "X" -o "X$variable" = "X" ]; then
die
fi
local flag="`grep "${service}_${option}" $config`"
if [ "X$flag" = "X" ]; then
if [ "X$comment" = "Xyes" ]; then
echo "#Option for $service created by Plesk installer." >> $config
fi
echo "${service}_${option}=\"${variable}\"" >> $config || die
else
sed -i "" -e 's|\('"${service}_${option}"'.*=\"\).*|\1'"${variable}"'\"|' $config || die
fi
return 0
}
register_service()
{
register_service_linux "$@"
}
remove_option_string()
{
#using: remove_option_string