Mercurial > ec-dotfiles
comparison moefetch.sh @ 200:8efa600ebfdb
purge ls
author | edhoprima@gmail.com <edhoprima@gmail.com> |
---|---|
date | Mon, 29 Jun 2009 15:29:08 +0000 |
parents | b9b90671616a |
children | 30d2fb656029 |
comparison
equal
deleted
inserted
replaced
199:b9b90671616a | 200:8efa600ebfdb |
---|---|
98 </xsl:template> | 98 </xsl:template> |
99 </xsl:stylesheet> | 99 </xsl:stylesheet> |
100 EOF | 100 EOF |
101 NUMFILES=$(echo $(wc -l < "${TEMP_PREFIX}-list")) | 101 NUMFILES=$(echo $(wc -l < "${TEMP_PREFIX}-list")) |
102 [ "${NUMFILES}" -gt 0 ] || Err_Fatal "Error in processing list or no files can be found with specified tag(s) or site" | 102 [ "${NUMFILES}" -gt 0 ] || Err_Fatal "Error in processing list or no files can be found with specified tag(s) or site" |
103 echo "${NUMFILES} file(s) available on server" | 103 echo " ${NUMFILES} file(s) available on server" |
104 #output file: ${TARGET_DIR}-list | 104 #output file: ${TARGET_DIR}-list |
105 } | |
106 | |
107 # getting rid of ls (as per suggestion) | |
108 Count_Files() { | |
109 _i=0 | |
110 for _f in "${*}/"* "${*}/".*; do | |
111 if [ "${_f}" != '*' ] || [ -e "${_f}" ]; then | |
112 _i=$((_i + 1)) | |
113 fi | |
114 done | |
115 echo $((_i - 2)) | |
105 } | 116 } |
106 | 117 |
107 # check tools availability | 118 # check tools availability |
108 Check_Tools() { | 119 Check_Tools() { |
109 # verify all programs required do indeed exist | 120 # verify all programs required do indeed exist |
144 if [ ! -O "${BASE_DIR}/${FOLDER}" ]; then | 155 if [ ! -O "${BASE_DIR}/${FOLDER}" ]; then |
145 echo "You don't own the ${BASE_DIR}/${FOLDER}, applying globally writeable permission on it" | 156 echo "You don't own the ${BASE_DIR}/${FOLDER}, applying globally writeable permission on it" |
146 chmod -R u=rwX,g=rwX,o=rwX "${BASE_DIR}/${FOLDER}" || Err_Fatal "Error changing ownership. This shouldn't happen" | 157 chmod -R u=rwX,g=rwX,o=rwX "${BASE_DIR}/${FOLDER}" || Err_Fatal "Error changing ownership. This shouldn't happen" |
147 fi | 158 fi |
148 done | 159 done |
149 [ "$(echo $(ls "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}" | wc -l))" -eq 0 ] && ISNEW=1 | 160 [ "$(Count_Files "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}")" -eq 0 ] && ISNEW=1 |
150 for i in error ok list newlist; do | 161 for i in error ok list newlist; do |
151 touch "${TEMP_PREFIX}-${i}" || Fatal_Err "Error creating ${TEMP_PREFIX}-${i}. This shouldn't happen" | 162 touch "${TEMP_PREFIX}-${i}" || Fatal_Err "Error creating ${TEMP_PREFIX}-${i}. This shouldn't happen" |
152 done | 163 done |
153 # | 164 # |
154 } | 165 } |
186 # check files correctness | 197 # check files correctness |
187 Check_Files() { | 198 Check_Files() { |
188 if [ ! "${ISNEW}" ]; then | 199 if [ ! "${ISNEW}" ]; then |
189 [ "${NOCLEAN}" ] || Cleanup_Repository | 200 [ "${NOCLEAN}" ] || Cleanup_Repository |
190 echo "Checking for errors..." | 201 echo "Checking for errors..." |
191 cd "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}" | |
192 > "${TEMP_PREFIX}-error" | 202 > "${TEMP_PREFIX}-error" |
193 for FILE in * | 203 for FILE in "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}/"* |
194 do | 204 do |
195 if [ "$(echo "${FILE}" | sed -e "${SED_IS_MD5_FILE}" | grep -v ^$)" ]; then | 205 if [ "$(echo "${FILE}" | sed -e "${SED_GET_FILENAME};${SED_IS_MD5_FILE}" | grep -v ^$)" ]; then |
196 echo | 206 echo |
197 echo "Not a valid danbooru file: ${FILE}" | 207 echo "Not a valid danbooru file: $(echo ${FILE} | sed -e "${SED_GET_FILENAME}")" |
198 else | 208 else |
199 if [ "$(${MD5} "${FILE}" | cut -d ' ' -f1 -)" != "$(echo "${FILE}" | cut -d '.' -f1)" ] | 209 if [ "$(${MD5} "${FILE}" | cut -d ' ' -f1 -)" != "$(echo "${FILE}" | sed -e "${SED_GET_FILENAME}" | cut -d '.' -f1)" ] |
200 then | 210 then |
201 echo "${FILE}" >> "${TEMP_PREFIX}-error" | 211 echo "${FILE}" >> "${TEMP_PREFIX}-error" |
202 echo | 212 echo |
203 echo "Error: ${FILE}" | 213 echo "Error: $(echo "${FILE}" | sed -e "${SED_GET_FILENAME}")" |
204 fi | 214 fi |
205 printf "." | 215 printf "." |
206 fi | 216 fi |
207 done | 217 done |
208 echo | 218 echo |
209 TOTAL_ERROR=$(echo "$(wc -l < "${TEMP_PREFIX}-error")") | 219 TOTAL_ERROR=$(echo $(wc -l < "${TEMP_PREFIX}-error")) |
210 echo "${TOTAL_ERROR} file(s) error" | 220 echo "${TOTAL_ERROR} file(s) error" |
211 echo "Removing error files" | 221 echo "Removing error files" |
212 if [ "${TOTAL_ERROR}" -eq 0 ]; then | 222 if [ "${TOTAL_ERROR}" -eq 0 ]; then |
213 echo "No error file. 0 file removed" | 223 echo "No error file. 0 file removed" |
214 else | 224 else |
215 cat "${TEMP_PREFIX}-error" | xargs rm | 225 cat "${TEMP_PREFIX}-error" | xargs rm |
216 echo "${TOTAL_ERROR} file(s) removed" | 226 echo "${TOTAL_ERROR} file(s) removed" |
217 fi | 227 fi |
218 echo "$(echo $(ls | wc -l)) file(s) available locally" | 228 echo "$(Count_Files "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}") file(s) available locally" |
219 | |
220 # current dir: ${BASE_DIR}/temp | |
221 cd "${BASE_DIR}/temp" | |
222 | 229 |
223 echo "Generating list of new files..." | 230 echo "Generating list of new files..." |
224 # THE FILES | 231 # THE FILES |
225 #ls "../${TARGET_DIR}" | grep -vf "${TARGET_DIR}-error" > "${TARGET_DIR}-ok" | 232 #ls "../${TARGET_DIR}" | grep -vf "${TARGET_DIR}-error" > "${TARGET_DIR}-ok" |
226 # | 233 # |
227 find "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}" | sed -e "${SED_GET_FILENAME}" | sort | comm -1 -3 "${TEMP_PREFIX}-error" - > "${TEMP_PREFIX}-ok" | 234 find "${BASE_DIR}/${SITE_DIR}/${TARGET_DIR}" | comm -1 -3 "${TEMP_PREFIX}-error" - | sed -e "${SED_GET_FILENAME}" > "${TEMP_PREFIX}-ok" |
228 cat "${TEMP_PREFIX}-list" | grep -vf "${TEMP_PREFIX}-ok" > "${TEMP_PREFIX}-newlist" | 235 cat "${TEMP_PREFIX}-list" | grep -vf "${TEMP_PREFIX}-ok" > "${TEMP_PREFIX}-newlist" |
229 echo "$(echo $(wc -l < "${TEMP_PREFIX}-newlist")) file(s) to be downloaded" | 236 echo "$(echo $(wc -l < "${TEMP_PREFIX}-newlist")) file(s) to be downloaded" |
230 | 237 |
231 else | 238 else |
232 if [ "${ISQUICK}" ]; then | 239 if [ "${ISQUICK}" ]; then |
233 echo "quick mode selected. Skipping check" | 240 echo "quick mode selected. Skipping check" |
234 else | 241 else |
235 echo "Empty local repository" | 242 echo "Empty local repository" |
236 fi | 243 fi |
237 cd "${BASE_DIR}/temp" | 244 cat "${TEMP_PREFIX}-list" > "${TEMP_PREFIX}-newlist" |
238 cat "${SITE_DIR}-${TARGET_DIR}-list" > "${SITE_DIR}-${TARGET_DIR}-newlist" | |
239 fi | 245 fi |
240 } | 246 } |
241 | 247 |
242 # start downloading the images | 248 # start downloading the images |
243 Fetch_Images() { | 249 Fetch_Images() { |