# HG changeset patch # User edhoprima@gmail.com # Date 1246293376 0 # Node ID 94a585031e3ba0e62f5b60642a4762c7ca029288 # Parent 3dbb5a6678f98807dbec1ae2a63894c12fbff0e3 speed? diff -r 3dbb5a6678f9 -r 94a585031e3b moefetch.sh --- a/moefetch.sh Mon Jun 29 16:13:22 2009 +0000 +++ b/moefetch.sh Mon Jun 29 16:36:16 2009 +0000 @@ -51,7 +51,7 @@ # useless welcome message. Also version Msg_Welcome() { - MOEFETCHVERSION="0.2-beta1" + MOEFETCHVERSION="0.2-beta2" cat < @@ -89,7 +89,7 @@ printf "Processing XML file..." # xslt evilry > "${TEMP_PREFIX}-list" - xsltproc - "${TEMP_PREFIX}-xml" < "${TEMP_PREFIX}-list" 2>/dev/null + xsltproc - "${TEMP_PREFIX}-xml" < "${TEMP_PREFIX}-list" 2>/dev/null @@ -127,7 +127,7 @@ fi MD5_COMMAND=$(echo ${MD5} | cut -d' ' -f1) # basic tools - COMMANDS="cut sed wc wget xsltproc xargs rm mkdir chown comm egrep grep date ${MD5_COMMAND}" + COMMANDS="cut sed wc wget xsltproc xargs rm mkdir chown comm grep date ${MD5_COMMAND}" for COMMAND in ${COMMANDS} do [ "$(command -v "${COMMAND}")" ] || Err_Fatal "${COMMAND} doesn't exist in ${PATH}" @@ -168,7 +168,7 @@ if [ -d "${TRASH}" ]; then ISTRASH=1 else - if [ "$(echo "${TRASH}" | sed -e "${SED_GET_FILENAME};${SED_IS_MD5_FILE}" | egrep -v ^$)" ]; then + if [ "$(echo "${TRASH}" | sed -e "${SED_GET_FILENAME};${SED_IS_MD5_FILE}" | grep -v ^$)" ]; then ISTRASH=1 else [ "$(cat "${TEMP_PREFIX}-list" | sed -e "${SED_GET_FILENAME}" | grep $(echo "${TRASH}" | sed -e "${SED_GET_FILENAME}"))" ] || ISTRASH=1 @@ -187,13 +187,12 @@ Check_Files() { if [ ! "${ISNEW}" ]; then [ "${NOCLEAN}" ] || Cleanup_Repository - echo "Checking for errors..." + printf "Checking for errors..." > "${TEMP_PREFIX}-error" for FILE in "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}/"* do - if [ "$(echo "${FILE}" | sed -e "${SED_GET_FILENAME};${SED_IS_MD5_FILE}" | egrep -v ^$)" ]; then - echo - echo "Not a valid danbooru file: $(echo ${FILE} | sed -e "${SED_GET_FILENAME}")" + if [ "$(echo "${FILE}" | sed -e "${SED_GET_FILENAME};${SED_IS_MD5_FILE}" | grep -v ^$)" ]; then + printf "\nNot a valid danbooru file: $(echo ${FILE} | sed -e "${SED_GET_FILENAME}")\n" else if [ "$(${MD5} "${FILE}" | cut -d ' ' -f1 -)" != "$(echo "${FILE}" | sed -e "${SED_GET_FILENAME}" | cut -d '.' -f1)" ] then @@ -204,29 +203,30 @@ printf "." fi done - echo + echo " done" TOTAL_ERROR=$(echo $(wc -l < "${TEMP_PREFIX}-error")) - echo "${TOTAL_ERROR} file(s) error" - echo "Removing error files" if [ "${TOTAL_ERROR}" -eq 0 ]; then - echo "No error file. 0 file removed" + echo "All files OK" else + printf "${TOTAL_ERROR} file(s) broken: removing..." cat "${TEMP_PREFIX}-error" | xargs rm - echo "${TOTAL_ERROR} file(s) removed" + echo " ${TOTAL_ERROR} file(s) removed" fi echo "$(Count_Files "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}") file(s) available locally" - echo "Generating list of new files..." + printf "Generating list of new files..." # THE FILES #ls "../${TARGET_DIR}" | grep -vf "${TARGET_DIR}-error" > "${TARGET_DIR}-ok" # find "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}" | comm -1 -3 "${TEMP_PREFIX}-error" - | sed -e "${SED_GET_FILENAME}" > "${TEMP_PREFIX}-ok" cat "${TEMP_PREFIX}-list" > "${TEMP_PREFIX}-templist" - #while read -r IS_OK; do - # cat "${TEMP_PREFIX}-templist" | grep -v "${IS_OK}" > "${TEMP_PREFIX}-newlist" - # cat "${TEMP_PREFIX}-newlist" > "${TEMP_PREFIX}-templist" - #done < "${TEMP_PREFIX}-ok" - cat "${TEMP_PREFIX}-list" | egrep -vf "${TEMP_PREFIX}-ok" > "${TEMP_PREFIX}-newlist" + while read -r IS_OK; do + cat "${TEMP_PREFIX}-templist" | grep -v "${IS_OK}" > "${TEMP_PREFIX}-newlist" + cat "${TEMP_PREFIX}-newlist" > "${TEMP_PREFIX}-templist" + printf "." + done < "${TEMP_PREFIX}-ok" + #cat "${TEMP_PREFIX}-list" | egrep -vf "${TEMP_PREFIX}-ok" > "${TEMP_PREFIX}-newlist" + echo " done" echo "$(echo $(wc -l < "${TEMP_PREFIX}-newlist")) file(s) to be downloaded" else @@ -244,7 +244,7 @@ if [ "$(echo $(wc -l < "${TEMP_PREFIX}-newlist"))" -eq 0 ]; then echo "No new file" else - echo "Starting wget" + printf "Starting wget..." cd "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}" wget -e continue=on -bi "${TEMP_PREFIX}-newlist" -o "${TEMP_PREFIX}.log" fi