77user=$1
88src_file=$2
99dst_dir=$3
10+ selected_dir=$4
11+ test=$5
1012
1113# Includes
1214source $HESTIA /func/main.sh
@@ -15,7 +17,7 @@ source $HESTIA/func/main.sh
1517# Verifications #
1618# ----------------------------------------------------------#
1719
18- check_args ' 3' " $# " ' USER ARCHIVE DIRECTORY'
20+ check_args ' 3' " $# " ' USER ARCHIVE DIRECTORY [SELECTED_DIR] [TEST] '
1921is_format_valid ' user'
2022is_object_valid ' user' ' USER' " $user "
2123
3436
3537# Checking source path
3638rpath=$( readlink -f " $src_file " )
37- if [ -z " $( echo $rpath | egrep " ^/tmp|^$homedir " ) " ]; then
39+ if [ -z " $( echo $rpath | egrep " ^/tmp|^$homedir |^ $BACKUP / $user \.|^ $BACKUP /tmp\. " ) " ]; then
3840 echo " Error: invalid source path $src_file "
3941 exit 2
4042fi
4951# Extracting gziped archive
5052if [ ! -z " $( echo $src_file | egrep -i ' .tgz|.tar.gz' ) " ]; then
5153 x=' yes'
52- sudo -u $user -- mkdir -p " $dst_dir " > /dev/null 2>&1
53- sudo -u $user -- tar -xzf " $src_file " -C " $dst_dir " > /dev/null 2>&1
54- rc=$?
54+ if [ -z " $test " ] || [ " $test " = " no" ]; then
55+ sudo -u $user -- mkdir -p " $dst_dir " > /dev/null 2>&1
56+ sudo -u $user -- tar -xzf " $src_file " -C " $dst_dir " --no-wildcards " $selected_dir " > /dev/null 2>&1
57+ rc=$?
58+ else
59+ sudo -u $user -- tar -tf " $src_file " --no-wildcards " $selected_dir " > /dev/null 2>&1
60+ rc=$?
61+ fi
62+
5563fi
5664
5765# Extracting bziped archive
5866if [ ! -z " $( echo $src_file | egrep -i ' .tbz|.tar.bz' ) " ]; then
5967 x=' yes'
60- sudo -u $user -- mkdir -p " $dst_dir " > /dev/null 2>&1
61- sudo -u $user -- tar -xjf " $src_file " -C " $dst_dir " > /dev/null 2>&1
62- rc=$?
68+ if [ -z " $test " ] || [ " $test " = " no" ]; then
69+ sudo -u $user -- mkdir -p " $dst_dir " > /dev/null 2>&1
70+ sudo -u $user -- tar -xjf " $src_file " -C " $dst_dir " --no-wildcards " $selected_dir " > /dev/null 2>&1
71+ rc=$?
72+ else
73+ sudo -u $user -- tar -tf " $src_file " --no-wildcards " $selected_dir " > /dev/null 2>&1
74+ rc=$?
75+ fi
6376fi
6477
6578# Extracting gziped file
96109# Extracting tared archive
97110if [ ! -z " $( echo $src_file | grep -i ' .tar' ) " ] && [ -z " $x " ]; then
98111 x=' yes'
99- sudo -u $user -- mkdir -p " $dst_dir " > /dev/null 2>&1
100- sudo -u $user -- tar -xf " $src_file " -C " $dst_dir " > /dev/null 2>&1
101- rc=$?
112+ if [ -z " $test " ] || [ " $test " = " no" ]; then
113+ sudo -u $user -- mkdir -p " $dst_dir " > /dev/null 2>&1
114+ sudo -u $user -- tar -xf " $src_file " -C " $dst_dir " --no-wildcards " $selected_dir " > /dev/null 2>&1
115+ rc=$?
116+ else
117+ sudo -u $user -- tar -tf " $src_file " --no-wildcards " $selected_dir " > /dev/null 2>&1
118+ rc=$?
119+ fi
102120fi
103121
104122# Extracting rared archive
0 commit comments