Initial
This commit is contained in:
104
bin/v-change-web-domain-sslhome
Executable file
104
bin/v-change-web-domain-sslhome
Executable file
@@ -0,0 +1,104 @@
|
||||
#!/bin/bash
|
||||
# info: changing domain ssl home
|
||||
# options: USER DOMAIN SSL_HOME [RESTART]
|
||||
#
|
||||
# example: v-change-web-domain-sslhome admin acme.com single
|
||||
# example: v-change-web-domain-sslhome admin acme.com same
|
||||
#
|
||||
# This function changes SSL home directory. Single will separate the both public_html / public_shtml. Same will always point to public_shtml
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variables & Functions #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument definition
|
||||
user=$1
|
||||
domain=$2
|
||||
domain_idn=$2
|
||||
ssl_home=$3
|
||||
restart=$4
|
||||
|
||||
# Includes
|
||||
# shellcheck source=/etc/hestiacp/hestia.conf
|
||||
source /etc/hestiacp/hestia.conf
|
||||
# shellcheck source=/usr/local/hestia/func/main.sh
|
||||
source $HESTIA/func/main.sh
|
||||
# shellcheck source=/usr/local/hestia/func/domain.sh
|
||||
source $HESTIA/func/domain.sh
|
||||
# load config file
|
||||
source_conf "$HESTIA/conf/hestia.conf"
|
||||
|
||||
# Additional argument formatting
|
||||
format_domain
|
||||
format_domain_idn
|
||||
# TODO: $domain_idn not used in this script - maybe $domain should be converted to $doman_idn ?
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '3' "$#" 'USER DOMAIN SSL_HOME [RESTART]'
|
||||
is_format_valid 'user' 'domain'
|
||||
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_unsuspended 'user' 'USER' "$user"
|
||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
||||
is_object_value_exist 'web' 'DOMAIN' "$domain" '$SSL'
|
||||
|
||||
# Perform verification if read-only mode is enabled
|
||||
check_hestia_demo_mode
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Get domain values
|
||||
get_domain_values 'web'
|
||||
old_ssl_home=$SSL_HOME
|
||||
SSL_HOME=$ssl_home
|
||||
|
||||
# Parsing tpl_option
|
||||
case $SSL_HOME in
|
||||
single)
|
||||
new="$HOMEDIR/$user/web/$domain/public_shtml"
|
||||
old="$HOMEDIR/$user/web/$domain/public_html"
|
||||
;;
|
||||
same)
|
||||
new="$HOMEDIR/$user/web/$domain/public_html"
|
||||
old="$HOMEDIR/$user/web/$domain/public_shtml"
|
||||
;;
|
||||
*) check_args '3' "2" 'USER DOMAIN SSLHOME' ;;
|
||||
esac
|
||||
|
||||
if [ "$SSL_HOME" = 'single' ] && [ ! -d "$HOMEDIR/$user/web/$domain/public_shtml" ]; then
|
||||
mkdir $HOMEDIR/$user/web/$domain/public_shtml
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain/public_shtml
|
||||
user_exec cp $WEBTPL/skel/public_html/* "$HOMEDIR/$user/web/$domain/public_shtml" > /dev/null 2>&1
|
||||
for file in $(find "$HOMEDIR/$user/web/$domain/public_shtml" -type f); do
|
||||
sed -i "s/%domain%/$domain/g" $file
|
||||
done
|
||||
fi
|
||||
|
||||
# Changing sslhome directory
|
||||
replace_web_config "$WEB_SYSTEM" "$TPL.stpl"
|
||||
|
||||
# Changing proxy vhost
|
||||
if [ -n "$PROXY_SYSTEM" ] && [ ! -z "$PROXY" ]; then
|
||||
replace_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Hestia #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Update config
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$SSL_HOME' "$SSL_HOME"
|
||||
|
||||
# Rebuild web
|
||||
$BIN/v-rebuild-web-domain "$user" "$domain" "$restart"
|
||||
|
||||
# Logging
|
||||
log_event "$OK" "$ARGUMENTS"
|
||||
|
||||
exit
|
||||
Reference in New Issue
Block a user