26 lines
749 B
Diff
26 lines
749 B
Diff
--- a/sfeed_update
|
|
+++ b/sfeed_update
|
|
@@ -90,11 +90,19 @@ _feed() {
|
|
encoding="$4"
|
|
|
|
filename="$(printf '%s' "${name}" | tr '/' '_')"
|
|
- sfeedfile="${sfeedpath}/${filename}"
|
|
+ sfeedfile="${sfeedpath}/${name}"
|
|
tmpfeedfile="${sfeedtmpdir}/${filename}"
|
|
|
|
- # if file does not exist yet create it.
|
|
- [ -e "${sfeedfile}" ] || touch "${sfeedfile}" 2>/dev/null
|
|
+ # if file does not exist yet create it and its parent directory
|
|
+ if [ ! -e "${sfeedfile}" ]; then
|
|
+ if [ ! -z "${name%/*}" ]; then
|
|
+ if ! mkdir -p "${sfeedfile%/*}"; then
|
|
+ log "${name}" "FAIL (DIR)"
|
|
+ return
|
|
+ fi
|
|
+ fi
|
|
+ touch "${sfeedfile}" 2>/dev/null
|
|
+ fi
|
|
|
|
if ! fetch "${name}" "${feedurl}" "${sfeedfile}" > "${tmpfeedfile}.fetch"; then
|
|
log "${name}" "FAIL (FETCH)"
|