Änderungen

Zur Navigation springen Zur Suche springen
K
→‎Programmcode: +neue version 8-)
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>

Navigationsmenü