| Zeile 26: |
Zeile 26: |
| | rm -f "$DB" | | rm -f "$DB" |
| | sqlite "$DB" "create table n (id INTEGER PRIMARY KEY,deep INTEGER,size INTEGER,time INTEGER,fpat TEXT,fnam TEXT,type TEXT,mime TEXT,hash TEXT);" | | sqlite "$DB" "create table n (id INTEGER PRIMARY KEY,deep INTEGER,size INTEGER,time INTEGER,fpat TEXT,fnam TEXT,type TEXT,mime TEXT,hash TEXT);" |
| | + | } |
| | + | |
| | + | fkt_decompress () { |
| | + | let DEEP+=1 |
| | + | echo "DECOMPRESS ($1): file \""$FPAT/$FNAM"\"" |
| | + | |
| | + | mkdir "${WORKING_DIR}${HASH}/" |
| | + | cd "${WORKING_DIR}${HASH}/" |
| | + | |
| | + | fkt_decompress_$1 "$FPAT/$FNAM" "${WORKING_DIR}${HASH}/$FNAM" |
| | + | fkt_gen_index "${WORKING_DIR}${HASH}/" |
| | + | |
| | + | cd "${WORKING_DIR}" |
| | + | rm -fR "${WORKING_DIR}${HASH}/" |
| | + | |
| | + | let DEEP-=1 |
| | + | } |
| | + | |
| | + | fkt_decompress_rar () { |
| | + | unrar -inul -p- e "$1" |
| | + | } |
| | + | |
| | + | fkt_decompress_zip () { |
| | + | unzip -qq "$1" |
| | + | } |
| | + | |
| | + | fkt_decompress_tar () { |
| | + | tar -xf "$1" |
| | + | } |
| | + | |
| | + | fkt_decompress_bzip2 () { |
| | + | cp "$1" "$2" |
| | + | bzip2 -d "$2" |
| | + | } |
| | + | |
| | + | fkt_decompress_gzip () { |
| | + | cp "$1" "$2.gz" |
| | + | gzip -d "$2.gz" |
| | + | } |
| | + | |
| | + | fkt_test_for_archiv () { |
| | + | if [ "$MIME" = "application/x-rar" ]; then fkt_decompress rar |
| | + | elif [ "$MIME" = "application/x-zip" ]; then fkt_decompress zip |
| | + | elif [ "$MIME" = "application/x-tar, POSIX" ]; then fkt_decompress tar |
| | + | elif [ "$MIME" = "application/x-bzip2" ]; then fkt_decompress bzip2 |
| | + | elif [ "${TYPE:0:20}" = "gzip compressed data" ]; then fkt_decompress gzip |
| | + | fi |
| | } | | } |
| | | | |
| | fkt_gen_index () { | | fkt_gen_index () { |
| − | echo "updating database \"$DB\" with index of \"$1\", deep = $DEEP" | + | echo "MAKE_INDEX: updating database \"$DB\" with index of \"$1\", deep = $DEEP" |
| | | | |
| | find "$1" -type f -printf "%s|%A@|%h|%f\n" | | | find "$1" -type f -printf "%s|%A@|%h|%f\n" | |
| Zeile 42: |
Zeile 89: |
| | MIME="$(file -ib "$3/$4")" | | MIME="$(file -ib "$3/$4")" |
| | HASH="$(md5sum -b "$3/$4" | cut -d" " -f1)" | | HASH="$(md5sum -b "$3/$4" | cut -d" " -f1)" |
| − | DATA="'$DEEP','$1','$2','$FPAT','$FNAM','$TYPE','$MIME','$HASH'" ; # echo "$DATA" | + | DATA="'$DEEP','$1','$2','$FPAT','$FNAM','$TYPE','$MIME','$HASH'" |
| − | | + | |
| | sqlite "$DB" "insert into n (deep,size,time,fpat,fnam,type,mime,hash) values ($DATA);" | | sqlite "$DB" "insert into n (deep,size,time,fpat,fnam,type,mime,hash) values ($DATA);" |
| | | | |
| − | if [ "$MIME" = "application/x-rar" ]; then
| + | fkt_test_for_archiv |
| − | let DEEP+=1
| |
| − | mkdir "${WORKING_DIR}${HASH}/"
| |
| − | echo "unRARing \""$FPAT/$FNAM"\""
| |
| − | unrar -inul e "$FPAT/$FNAM" "${WORKING_DIR}${HASH}/"
| |
| − | fkt_gen_index "${WORKING_DIR}${HASH}/"
| |
| − | rm -fR "${WORKING_DIR}${HASH}/"
| |
| − | let DEEP-=1
| |
| − | elif [ "$MIME" = "application/x-zip" ]; then | |
| − | let DEEP+=1
| |
| − | mkdir "${WORKING_DIR}${HASH}/"
| |
| − | echo "unZIPing \"$FPAT/$FNAM\""
| |
| − | unzip -qq "$FPAT/$FNAM" -d "${WORKING_DIR}${HASH}/"
| |
| − | fkt_gen_index "${WORKING_DIR}${HASH}/"
| |
| − | rm -fR "${WORKING_DIR}${HASH}/"
| |
| − | let DEEP-=1
| |
| − | fi
| |
| | done | | done |
| | | | |
| | echo "leaving directory \"$1\", deep = $DEEP" | | echo "leaving directory \"$1\", deep = $DEEP" |
| | unset IFS | | unset IFS |
| | + | } |
| | + | |
| | + | fkt_report () { |
| | + | sqlite "$DB" "select size from n" | awk '{s=s+$0;c++}END{print s" bytes in "c" files"}' |
| | } | | } |
| | | | |
| Zeile 76: |
Zeile 111: |
| | fkt_create_db "$1" | | fkt_create_db "$1" |
| | fkt_gen_index "$1" | | fkt_gen_index "$1" |
| | + | fkt_report |
| | fi | | fi |
| | </pre> | | </pre> |