107107# Extract cPanel package name
108108cpanel_package_name=$( cat ./cp/$new_user | grep ' PLAN=' | cut -f2 -d' =' )
109109if /usr/local/hestia/bin/v-list-user-packages | grep -qw " $cpanel_package_name " ; then
110- hestia_package=" $cpanel_package_name "
111- echo " Package $hestia_package will be used for the user."
110+ hestia_package=" $cpanel_package_name "
111+ echo " Package $hestia_package will be used for the user."
112112else
113- hestia_package=" default" # Replace "default" with your default Hestia package name
114- echo " Default package $hestia_package will be used for the user."
113+ hestia_package=" default" # Replace "default" with your default Hestia package name
114+ echo " Default package $hestia_package will be used for the user."
115115fi
116116
117117# Create a new user
@@ -258,18 +258,18 @@ CPANEL_PHP_VERSION=$(echo $CPANEL_PHP_VERSION | grep -oP '(?<=php)\d+')
258258HESTIA_PHP_VERSION=" PHP-${CPANEL_PHP_VERSION: 0: 1} _${CPANEL_PHP_VERSION: 1} "
259259
260260if $BIN /v-list-web-templates-backend | grep -qw " $HESTIA_PHP_VERSION " ; then
261- echo " Setting PHP version to $HESTIA_PHP_VERSION for $main_domain1 under user $new_user "
262- $BIN /v-change-web-domain-backend-tpl $new_user $main_domain1 $HESTIA_PHP_VERSION
263- if [ $? -ne 0 ]; then
264- echo " Failed to set PHP version for $main_domain1 "
265- exit 1
266- else
267- echo " PHP version for $main_domain1 set to $HESTIA_PHP_VERSION "
268- fi
261+ echo " Setting PHP version to $HESTIA_PHP_VERSION for $main_domain1 under user $new_user "
262+ $BIN /v-change-web-domain-backend-tpl $new_user $main_domain1 $HESTIA_PHP_VERSION
263+ if [ $? -ne 0 ]; then
264+ echo " Failed to set PHP version for $main_domain1 "
265+ exit 1
266+ else
267+ echo " PHP version for $main_domain1 set to $HESTIA_PHP_VERSION "
268+ fi
269269else
270- echo " PHP version $HESTIA_PHP_VERSION is not installed on HestiaCP."
271- echo " Please install it before trying to set it for a domain."
272- exit 1
270+ echo " PHP version $HESTIA_PHP_VERSION is not installed on HestiaCP."
271+ echo " Please install it before trying to set it for a domain."
272+ exit 1
273273fi
274274
275275# #################
@@ -286,12 +286,12 @@ for folder in *; do
286286 echo " Domain: $folder "
287287 cd $folder
288288
289- mail_account_count=$( find . -maxdepth 1 -mindepth 1 -type d \( ! -name cur ! -name new ! -name tmp \) | wc -l)
290- if [ " $mail_account_count " -eq 0 ]; then
291- echo " No mail accounts to restore for domain $folder ."
292- cd ..
293- continue
294- fi
289+ mail_account_count=$( find . -maxdepth 1 -mindepth 1 -type d \( ! -name cur ! -name new ! -name tmp \) | wc -l)
290+ if [ " $mail_account_count " -eq 0 ]; then
291+ echo " No mail accounts to restore for domain $folder ."
292+ cd ..
293+ continue
294+ fi
295295
296296 for mail_account in * ; do
297297 echo " Import mail account: $mail_account @$folder "
@@ -302,40 +302,40 @@ for folder in *; do
302302 chown -R $new_user :mail /home/$new_user /mail/$folder /
303303
304304 # Decompress gzipped emails
305- decompressed_count=0
306- for mail_file in $( find /home/$new_user /mail/$folder -type f) ; do
307- if file " $mail_file " | grep -q " gzip compressed" ; then
308- original_time=$( stat -c %y " $mail_file " 2> /dev/null)
309- gunzip -c " $mail_file " > " ${mail_file} .decompressed" && mv " ${mail_file} .decompressed" " $mail_file "
310- if [ ! -z " $original_time " ]; then
305+ decompressed_count=0
306+ for mail_file in $( find /home/$new_user /mail/$folder -type f) ; do
307+ if file " $mail_file " | grep -q " gzip compressed" ; then
308+ original_time=$( stat -c %y " $mail_file " 2> /dev/null)
309+ gunzip -c " $mail_file " > " ${mail_file} .decompressed" && mv " ${mail_file} .decompressed" " $mail_file "
310+ if [ ! -z " $original_time " ]; then
311311 touch -d " $original_time " " $mail_file "
312- fi
312+ fi
313313 let decompressed_count++
314- fi
315- done
314+ fi
315+ done
316+
317+ echo " $decompressed_count emails decompressed for $mail_account @$folder "
316318
317- echo " $decompressed_count emails decompressed for $mail_account @$folder "
318-
319319 find /home/$new_user /mail/$folder -type f -name ' dovecot*' -delete
320320
321321 # Extract and update password from the shadow file
322322 password_file=" ../../etc/${folder} /shadow"
323323 if [ -f " $password_file " ]; then
324- pass_line=$( grep " ^$mail_account :" $password_file )
325- if [ $? -eq 0 ]; then
326- # Extract the hashed password from the shadow file
327- pass=$( echo " $pass_line " | awk -F " :" ' {print $2}' )
328- newline=" ${mail_account} :{SHA512-CRYPT}$pass :${new_user} :mail::/home/${new_user} :0"
329- newline2=" ACCOUNT='${mail_account} ' ALIAS='' AUTOREPLY='no' FWD='' FWD_ONLY='' MD5='{SHA512-CRYPT}$pass ' QUOTA='unlimited' U_DISK='0' SUSPENDED='no' TIME='$time ' DATE='$date '"
330- escaped=$( printf ' %s\n' " $newline " | sed -e ' s/[\/&]/\\&/g' )
331- escaped2=$( printf ' %s\n' " $newline2 " | sed -e ' s/[\/&]/\\&/g' )
332- sed -i " s/^${mail_account} :.*/$escaped /g" /home/${new_user} /conf/mail/${folder} /passwd
333- sed -i " s/^ACCOUNT='${mail_account} .*/$escaped2 /g" /usr/local/hestia/data/users/${new_user} /mail/${folder} .conf
334- else
335- echo " Warning: Password for $mail_account @$folder not found in shadow file."
336- fi
324+ pass_line=$( grep " ^$mail_account :" $password_file )
325+ if [ $? -eq 0 ]; then
326+ # Extract the hashed password from the shadow file
327+ pass=$( echo " $pass_line " | awk -F " :" ' {print $2}' )
328+ newline=" ${mail_account} :{SHA512-CRYPT}$pass :${new_user} :mail::/home/${new_user} :0"
329+ newline2=" ACCOUNT='${mail_account} ' ALIAS='' AUTOREPLY='no' FWD='' FWD_ONLY='' MD5='{SHA512-CRYPT}$pass ' QUOTA='unlimited' U_DISK='0' SUSPENDED='no' TIME='$time ' DATE='$date '"
330+ escaped=$( printf ' %s\n' " $newline " | sed -e ' s/[\/&]/\\&/g' )
331+ escaped2=$( printf ' %s\n' " $newline2 " | sed -e ' s/[\/&]/\\&/g' )
332+ sed -i " s/^${mail_account} :.*/$escaped /g" /home/${new_user} /conf/mail/${folder} /passwd
333+ sed -i " s/^ACCOUNT='${mail_account} .*/$escaped2 /g" /usr/local/hestia/data/users/${new_user} /mail/${folder} .conf
334+ else
335+ echo " Warning: Password for $mail_account @$folder not found in shadow file."
336+ fi
337337 else
338- echo " Warning: Shadow file for $folder not found."
338+ echo " Warning: Shadow file for $folder not found."
339339 fi
340340 done
341341 cd ..
@@ -377,24 +377,23 @@ cd "$CRON_DIR"
377377
378378CRON_FILE=" ${new_user} "
379379if [ -f " $CRON_FILE " ] && [ -s " $CRON_FILE " ]; then
380- while IFS= read -r cron_job || [ -n " $cron_job " ]; do
381- [[ " $cron_job " =~ ^(# .*|\s*|MAILTO=.*|SHELL=.*)$ ]] && continue
382-
383- min=$( echo " $cron_job " | awk ' {print $1}' )
384- hour=$( echo " $cron_job " | awk ' {print $2}' )
385- day=$( echo " $cron_job " | awk ' {print $3}' )
386- month=$( echo " $cron_job " | awk ' {print $4}' )
387- dow=$( echo " $cron_job " | awk ' {print $5}' )
388- cmd=$( echo " $cron_job " | awk ' {for (i=6; i<=NF; i++) printf $i " "; print ""}' )
389-
390- $BIN /v-add-cron-job $new_user " $min " " $hour " " $day " " $month " " $dow " " $cmd "
391- done < " $CRON_FILE "
392- echo " Cron jobs restored for user $new_user ."
380+ while IFS= read -r cron_job || [ -n " $cron_job " ]; do
381+ [[ " $cron_job " =~ ^(# .*|\s*|MAILTO=.*|SHELL=.*)$ ]] && continue
382+
383+ min=$( echo " $cron_job " | awk ' {print $1}' )
384+ hour=$( echo " $cron_job " | awk ' {print $2}' )
385+ day=$( echo " $cron_job " | awk ' {print $3}' )
386+ month=$( echo " $cron_job " | awk ' {print $4}' )
387+ dow=$( echo " $cron_job " | awk ' {print $5}' )
388+ cmd=$( echo " $cron_job " | awk ' {for (i=6; i<=NF; i++) printf $i " "; print ""}' )
389+
390+ $BIN /v-add-cron-job $new_user " $min " " $hour " " $day " " $month " " $dow " " $cmd "
391+ done < " $CRON_FILE "
392+ echo " Cron jobs restored for user $new_user ."
393393else
394- echo " No cron jobs file found or it is empty for user $new_user ."
394+ echo " No cron jobs file found or it is empty for user $new_user ."
395395fi
396396
397-
398397rm -rf " $tmpdir "
399398
400399echo " ##############################"
0 commit comments