"Pages" list also for index.html files in subdirectories

master
emamaker 2 years ago
parent 387202b935
commit 5538ba5c59
  1. 40
      rivet.sh

@ -201,8 +201,25 @@ if ! [ "$SKIP_META" ]; then
done done
fi fi
# Prepare index file list # For every file named "index.html", prepare index file list
if ! [ "$SKIP_LIST" ]; then if ! [ "$SKIP_LIST" ]; then
lobjlist=$(mktemp)
lobjdate=$(mktemp)
llinklist=$(mktemp)
for indexf in $(find "$destdir" -type f -iname "index.html"); do
outdir=$(echo $(dirname "$indexf") | sed "s/$destdir//g")
# Generate an ordered (by open time) list of files in the subdirectory by filtering the global list
grep "$outdir" "$objlist" > "$lobjlist"
sed -e "s,^\/*[^\/]*\/,$destdir/," "$lobjlist" > "$tmpsed"
rm -f "$lobjdate"
while IFS="" read -r file; do
stat -c '%y' "$file" >> "$lobjdate"
done < "$lobjlist"
mv "$tmpsed" "$lobjlist"
grep "$outdir" "$linklist" > "$llinklist"
tmpfile="$(mktemp)" tmpfile="$(mktemp)"
rm -f "$tmpfile" rm -f "$tmpfile"
cat << EOF >> "$tmpfile" cat << EOF >> "$tmpfile"
@ -215,22 +232,23 @@ EOF
if echo "$line" | grep -q 'index\.html'; then if echo "$line" | grep -q 'index\.html'; then
continue continue
fi fi
tfile="$(awk "NR==$count" "$objlist")" tfile="$(awk "NR==$count" "$lobjlist")"
title="$(sed -E -n 's/.*<title>\s*(.+)\s*<\/title>.*/\1/p' "$tfile")" title="$(sed -E -n 's/.*<title>\s*(.+)\s*<\/title>.*/\1/p' "$tfile")"
if [ -z "$title" ]; then if [ -z "$title" ]; then
title="${tfile##*/}" title="${tfile##*/}"
fi fi
ldate="$(awk "NR==$count" "$objdate" | sed 's/\s.*$//')" ldate="$(awk "NR==$count" "$lobjdate" | sed 's/\s.*$//')"
printf "<p><a href=\"%s\">%s - %s</a></p>\n" "$line" "$ldate" "$title" >> "$tmpfile" printf "<p><a href=\"%s\">%s - %s</a></p>\n" "$line" "$ldate" "$title" >> "$tmpfile"
done < "$linklist" done < "$llinklist"
echo '</div>' >> "$tmpfile" echo '</div>' >> "$tmpfile"
sed '/<\/body>/i REPLACE' "$destdir"/index.html > "$tmpsed" sed '/<\/body>/i REPLACE' $indexf > "$tmpsed"
mv "$tmpsed" "$destdir"/index.html mv "$tmpsed" $indexf
sed "/^REPLACE/r $tmpfile" "$destdir"/index.html > "$tmpsed" sed "/^REPLACE/r $tmpfile" $indexf > "$tmpsed"
mv "$tmpsed" "$destdir"/index.html mv "$tmpsed" $indexf
sed 's/^REPLACE//' "$destdir"/index.html > "$tmpsed" sed 's/^REPLACE//' $indexf > "$tmpsed"
mv "$tmpsed" "$destdir"/index.html mv "$tmpsed" $indexf
rm -f "$tmpfile" rm -f "$tmpfile"
done;
fi fi
# enclose article inside <article></article> # enclose article inside <article></article>

Loading…
Cancel
Save