p7zip-rar/GUI/p7zipForFilemanager

109 lines
1.6 KiB
Bash

#! /bin/sh
# program t archive1.7z ... archiveN.7z
# program x directory_out archive1.7z ... archiveN.7z
# program xd directory_out archive1.7z ... archiveN.7z
# program a -t7z current_directory file1 ... fileN
# program ad -tzip current_directory file1 ... fileN
P7ZIP="7zG"
list=/tmp/p7zip.list.$$
rm -f ${list}
trace=/tmp/7zG1.txt
rm -f ${trace}
for file in "$@"
do
echo "arg=${file}" >> ${trace}
done
cmd="$1"
shift
flag_ad=""
flag_type=""
case "${cmd}" in
b|t)
;;
x|xs)
;;
xd)
flag_ad="-ad"
;;
a)
flag_type="$1"
shift
;;
ad)
flag_type="$1"
shift
flag_ad="-ad"
;;
*)
echo "Unknown command \"${cmd}\""
exit 1
;;
esac
#ext=".7z"
#if [ "${flag_type}" = "-tzip" ]
#then
# ext=".zip"
#fi
argn="$#"
file1="$1"
dir1=`dirname "${file1}"`
file2="$2"
echo "argn=${argn}" >> ${trace}
echo "flag_type=${flag_type}" >> ${trace}
echo "file1=${file1}" >> ${trace}
echo "dir1=${dir1}" >> ${trace}
echo "file2=${file2}" >> ${trace}
if [ "a${dir1}" != "a" ]
then
cd "${dir1}"
fi
for file in "$@"
do
file=`basename "${file}"`
echo ${file} >> ${list}
echo "list=${file}" >> ${trace}
done
case "${cmd}" in
b)
${P7ZIP} b
;;
t)
${P7ZIP} t -an -ai@${list}
;;
x|xd)
${P7ZIP} x ${flag_ad} -an -ai@${list}
;;
xs)
dir_out=`dirname "${file1}"`
${P7ZIP} x ${flag_ad} -o"*" -an -ai@${list}
;;
a|ad)
if [ ${argn} -eq "1" ]
then
file=`basename "${file1}"`${ext}
echo "archive_out=${file}" >> ${trace}
${P7ZIP} a ${flag_ad} ${flag_type} -i@${list} ${flag} -- "${file}"
else
file=`basename "${dir1}"`${ext}
echo "archive_out=${file}" >> ${trace}
${P7ZIP} a ${flag_ad} ${flag_type} -i@${list} ${flag} -- "${file}"
fi
;;
esac
rm -f ${list}