109 lines
1.6 KiB
Plaintext
109 lines
1.6 KiB
Plaintext
|
#! /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}
|
||
|
|