Poormens desktop search engine.sh: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(backup) |
K (layout) |
||
Zeile 1: | Zeile 1: | ||
+ | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
− | |||
− | |||
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