Mercurial > ec-dotfiles
comparison moefetch.sh @ 205:2e866999c042
now with useless animation
author | edhoprima@gmail.com <edhoprima@gmail.com> |
---|---|
date | Mon, 29 Jun 2009 17:03:35 +0000 |
parents | fb02adf58c00 |
children | a44ba2e495a1 |
comparison
equal
deleted
inserted
replaced
204:fb02adf58c00 | 205:2e866999c042 |
---|---|
101 [ "${NUMFILES}" -gt 0 ] || Err_Fatal "Error in processing list or no files can be found with specified tag(s) or site" | 101 [ "${NUMFILES}" -gt 0 ] || Err_Fatal "Error in processing list or no files can be found with specified tag(s) or site" |
102 echo " ${NUMFILES} file(s) available on server" | 102 echo " ${NUMFILES} file(s) available on server" |
103 #output file: ${TARGET_DIR}-list | 103 #output file: ${TARGET_DIR}-list |
104 } | 104 } |
105 | 105 |
106 Progress_Init() { | |
107 _last="-" | |
108 printf "${_last}" | |
109 } | |
110 | |
111 Progress_Anim() { | |
112 case "${_last}" in | |
113 /) _last="-";; | |
114 -) _last=\\;; | |
115 \\) _last=\|;; | |
116 \|) _last="/";; | |
117 esac | |
118 printf "\b${_last}" | |
119 } | |
120 | |
121 Progress_Done() { printf "\bdone\n"; } | |
122 | |
106 # getting rid of ls (as per suggestion) | 123 # getting rid of ls (as per suggestion) |
107 Count_Files() { | 124 Count_Files() { |
108 _i=0 | 125 _i=0 |
109 for _f in "${*}/"* "${*}/".*; do | 126 for _f in "${*}/"* "${*}/".*; do |
110 if [ "${_f}" != '*' ] || [ -e "${_f}" ]; then | 127 if [ "${_f}" != '*' ] || [ -e "${_f}" ]; then |
157 Cleanup_Repository() { | 174 Cleanup_Repository() { |
158 | 175 |
159 # THE FILES | 176 # THE FILES |
160 | 177 |
161 # current dir: ${BASE_DIR}/${SITE_DIR}/${TARGET_DIR} | 178 # current dir: ${BASE_DIR}/${SITE_DIR}/${TARGET_DIR} |
162 printf "Cleaning up repository folder" | 179 printf "Cleaning up repository folder..." |
180 Progress_Init | |
163 TRASH_DIR=$(date -u "+${SITE_DIR}-${TARGET_DIR}-%Y%m%d-%H.%M") | 181 TRASH_DIR=$(date -u "+${SITE_DIR}-${TARGET_DIR}-%Y%m%d-%H.%M") |
164 mkdir -p "${BASE_DIR}/trash/${TRASH_DIR}" || Err_Fatal "Unable to create trash folder" | 182 mkdir -p "${BASE_DIR}/trash/${TRASH_DIR}" || Err_Fatal "Unable to create trash folder" |
165 for TRASH in "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}/"* | 183 for TRASH in "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}/"* |
166 do | 184 do |
167 ISTRASH= | 185 ISTRASH= |
176 fi | 194 fi |
177 if [ "${ISTRASH}" ]; then | 195 if [ "${ISTRASH}" ]; then |
178 mv -f "${TRASH}" "${BASE_DIR}/trash/${TRASH_DIR}" || Err_Fatal "Error deleting files" | 196 mv -f "${TRASH}" "${BASE_DIR}/trash/${TRASH_DIR}" || Err_Fatal "Error deleting files" |
179 echo "Moved $(echo "${TRASH}" | sed -e "${SED_GET_FILENAME}") to ${BASE_DIR}/trash/${TRASH_DIR}" | 197 echo "Moved $(echo "${TRASH}" | sed -e "${SED_GET_FILENAME}") to ${BASE_DIR}/trash/${TRASH_DIR}" |
180 fi | 198 fi |
181 printf "." | 199 Progress_Anim |
182 done | 200 done |
183 echo "done" | |
184 rmdir "${BASE_DIR}/trash/${TRASH_DIR}" 2>/dev/null | 201 rmdir "${BASE_DIR}/trash/${TRASH_DIR}" 2>/dev/null |
202 Progress_Done | |
185 } | 203 } |
186 | 204 |
187 # check files correctness | 205 # check files correctness |
188 Check_Files() { | 206 Check_Files() { |
189 if [ ! "${ISNEW}" ]; then | 207 if [ ! "${ISNEW}" ]; then |
190 [ "${NOCLEAN}" ] || Cleanup_Repository | 208 [ "${NOCLEAN}" ] || Cleanup_Repository |
191 printf "Checking for errors" | 209 printf "Checking for errors..." |
210 Progress_Init | |
192 > "${TEMP_PREFIX}-error" | 211 > "${TEMP_PREFIX}-error" |
193 for FILE in "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}/"* | 212 for FILE in "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}/"* |
194 do | 213 do |
195 if [ "$(echo "${FILE}" | sed -e "${SED_GET_FILENAME};${SED_IS_MD5_FILE}" | grep -v ^$)" ]; then | 214 if [ "$(echo "${FILE}" | sed -e "${SED_GET_FILENAME};${SED_IS_MD5_FILE}" | grep -v ^$)" ]; then |
196 printf "\nNot a valid danbooru file: $(echo ${FILE} | sed -e "${SED_GET_FILENAME}")\n" | 215 printf "\nNot a valid danbooru file: $(echo ${FILE} | sed -e "${SED_GET_FILENAME}")\n${_last}" |
197 else | 216 else |
198 if [ "$(${MD5} "${FILE}" | cut -d ' ' -f1 -)" != "$(echo "${FILE}" | sed -e "${SED_GET_FILENAME}" | cut -d '.' -f1)" ] | 217 if [ "$(${MD5} "${FILE}" | cut -d ' ' -f1 -)" != "$(echo "${FILE}" | sed -e "${SED_GET_FILENAME}" | cut -d '.' -f1)" ] |
199 then | 218 then |
200 echo "${FILE}" >> "${TEMP_PREFIX}-error" | 219 echo "${FILE}" >> "${TEMP_PREFIX}-error" |
201 echo | 220 echo |
202 echo "Error: $(echo "${FILE}" | sed -e "${SED_GET_FILENAME}")" | 221 echo "Error: $(echo "${FILE}" | sed -e "${SED_GET_FILENAME}")" |
203 fi | 222 fi |
204 printf "." | 223 Progress_Anim |
205 fi | 224 fi |
206 done | 225 done |
207 echo "done" | 226 Progress_Done |
208 TOTAL_ERROR=$(echo $(wc -l < "${TEMP_PREFIX}-error")) | 227 TOTAL_ERROR=$(echo $(wc -l < "${TEMP_PREFIX}-error")) |
209 if [ "${TOTAL_ERROR}" -eq 0 ]; then | 228 if [ "${TOTAL_ERROR}" -eq 0 ]; then |
210 echo "All files OK" | 229 echo "All files OK" |
211 else | 230 else |
212 printf "${TOTAL_ERROR} file(s) broken: removing..." | 231 printf "${TOTAL_ERROR} file(s) broken: removing..." |
214 echo " ${TOTAL_ERROR} file(s) removed" | 233 echo " ${TOTAL_ERROR} file(s) removed" |
215 fi | 234 fi |
216 echo "$(Count_Files "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}") file(s) available locally" | 235 echo "$(Count_Files "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}") file(s) available locally" |
217 | 236 |
218 printf "Generating list of new files..." | 237 printf "Generating list of new files..." |
238 Progress_Init | |
219 # THE FILES | 239 # THE FILES |
220 #ls "../${TARGET_DIR}" | grep -vf "${TARGET_DIR}-error" > "${TARGET_DIR}-ok" | 240 #ls "../${TARGET_DIR}" | grep -vf "${TARGET_DIR}-error" > "${TARGET_DIR}-ok" |
221 # | 241 # |
222 find "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}" | comm -1 -3 "${TEMP_PREFIX}-error" - | sed -e "${SED_GET_FILENAME}" > "${TEMP_PREFIX}-ok" | 242 find "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}" | comm -1 -3 "${TEMP_PREFIX}-error" - | sed -e "${SED_GET_FILENAME}" > "${TEMP_PREFIX}-ok" |
223 cat "${TEMP_PREFIX}-list" > "${TEMP_PREFIX}-templist" | 243 cat "${TEMP_PREFIX}-list" > "${TEMP_PREFIX}-templist" |
224 while read -r IS_OK; do | 244 while read -r IS_OK; do |
225 cat "${TEMP_PREFIX}-templist" | grep -v "${IS_OK}" > "${TEMP_PREFIX}-newlist" | 245 cat "${TEMP_PREFIX}-templist" | grep -v "${IS_OK}" > "${TEMP_PREFIX}-newlist" |
226 cat "${TEMP_PREFIX}-newlist" > "${TEMP_PREFIX}-templist" | 246 cat "${TEMP_PREFIX}-newlist" > "${TEMP_PREFIX}-templist" |
227 printf "." | 247 Progress_Anim |
228 done < "${TEMP_PREFIX}-ok" | 248 done < "${TEMP_PREFIX}-ok" |
249 Progress_Done | |
229 #cat "${TEMP_PREFIX}-list" | egrep -vf "${TEMP_PREFIX}-ok" > "${TEMP_PREFIX}-newlist" | 250 #cat "${TEMP_PREFIX}-list" | egrep -vf "${TEMP_PREFIX}-ok" > "${TEMP_PREFIX}-newlist" |
230 echo " done" | |
231 echo "$(echo $(wc -l < "${TEMP_PREFIX}-newlist")) file(s) to be downloaded" | 251 echo "$(echo $(wc -l < "${TEMP_PREFIX}-newlist")) file(s) to be downloaded" |
232 | 252 |
233 else | 253 else |
234 if [ "${ISQUICK}" ]; then | 254 if [ "${ISQUICK}" ]; then |
235 echo "quick mode selected. Skipping check" | 255 echo "quick mode selected. Skipping check" |