ports/main/sfeed/0001-sfeed_update-allow-dir...

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)"