#! /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}