Poormens desktop search engine.sh: Unterschied zwischen den Versionen

Aus Weimarnetz Wiki
Zur Navigation springen Zur Suche springen
(backup)
 
K (layout)
Zeile 1: Zeile 1:
 +
<pre>
 
#!/bin/sh
 
#!/bin/sh
 
# sqlite /root/spielereien/ganze_festplatte.db "select * from n where size>9999999 ORDER BY size ASC LIMIT 5"
 
  
 
fkt_create_db () {
 
fkt_create_db () {
Zeile 59: Zeile 58:
 
         fkt_gen_index  "$1"
 
         fkt_gen_index  "$1"
 
fi
 
fi
 +
</pre>

Version vom 12. September 2007, 17:53 Uhr

#!/bin/sh

fkt_create_db () {
        DB="${WORKING_DIR}$(echo "$1" | md5sum -b | cut -d" " -f1).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);"
}

fkt_gen_index () {
        echo "updating database \"$DB\" with index of \"$1\", deep = $DEEP"

        find "$1" -type f -printf "%s|%A@|%h|%f\n" |
         while read LINE; do
                let LINES+=1
                IFS="|"
                set $LINE

                FPAT="$(echo      "$3"    | sed "s/'/''/g")"; test "$DEEP" -gt 0 && a=a
                FNAM="$(echo         "$4" | sed "s/'/''/g")"
                TYPE="$(file -b   "$3/$4" | sed "s/'/''/g")"
                MIME="$(file -ib  "$3/$4")"
                HASH="$(md5sum -b "$3/$4" | cut -d" " -f1)"
                DATA="'$DEEP','$1','$2','$FPAT','$FNAM','$TYPE','$MIME','$HASH'" ; # echo "$DATA"

                sqlite "$DB" "insert into n (deep,size,time,fpat,fnam,type,mime,hash) values ($DATA);"

                  if [ "$MIME" = "application/x-rar" ]; then
                        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

        echo "leaving directory \"$1\", deep = $DEEP"
        unset IFS
}

if [ -z "$1" ] || [ -z "$2" ]; then
        echo "Usage: $0 /directory/to/crawl/ /working/dir/"
else
        DEEP=0
        WORKING_DIR="$2"
        fkt_create_db   "$1"
        fkt_gen_index   "$1"
fi