]> git.plutz.net Git - serve0/commitdiff
improved update heuristics
authorPaul Hänsch <paul@plutz.net>
Tue, 4 Jun 2019 15:37:36 +0000 (17:37 +0200)
committerPaul Hänsch <paul@plutz.net>
Tue, 4 Jun 2019 15:37:36 +0000 (17:37 +0200)
index.cgi
indexmeta.sh

index 62e495aed94d5538515f3ba751dc5a625bc67c79..a33211d6653adbc4fc2980e4d0077277069abc06 100755 (executable)
--- a/index.cgi
+++ b/index.cgi
@@ -26,7 +26,7 @@ case $ACTION in
     SET_COOKIE +$((86400 * 90))      mode="$(POST     mode |grep -m1 -axE 'browse|index' || printf browse)"
     SET_COOKIE +$((86400 * 90))   fakemp4="$(POST  fakemp4 |grep -m1 -axE 'yes' || printf no)"
     SET_COOKIE +$((86400 * 90)) downscale="$(POST  downscale |grep -m1 -axE 'yes' || printf no)"
-    [ "$(POST index)" = "update" ] && touch -cd @0 "${_DATA}/.index/meta"
+    [ "$(POST index)" = "update" ] && touch -cd @0 "${_DATA}/.index/meta.time"
     REDIRECT "$(POST ref)"
   ;;
   bookmark)
index fb893e14195bd8ba2554adb121097a5f8c021eb9..2da085f9a0bf86fcdb630f8fd98443df7d99c423 100644 (file)
@@ -76,6 +76,9 @@ meta_dir(){
   local dir meta v
   dir="${1}"
   meta="${dir}/.index/meta"
+  metat="${dir}/.index/meta.time"
+
+  [ -f "$metat" ] || touch -d @0 "$metat"
 
   if [ -d "$dir/.index" -a \! -f "$meta" ] && LOCK "$meta"; then
     touch "$meta"  # preliminary touch to prevent concurrent generators
@@ -86,9 +89,9 @@ meta_dir(){
     done >"$meta"
 
     RELEASE "$meta"
-  elif [ -d "$dir/.index" -a "$dir" -nt "$meta" ] && LOCK "$meta"; then
+  elif [ -d "$dir/.index" -a "$dir" -nt "$metat" ] && LOCK "$meta"; then
     cp -p "$meta" "$meta.ref"; touch "$meta"
-    find "$dir" -type f -newer "$meta.ref" \
+    find "$dir" -type f -newer "$metat" \
          -mindepth 1 -maxdepth 1 \
     | grep -aE "$file_pattern" \
     | while read -r v; do
@@ -97,6 +100,7 @@ meta_dir(){
     done >>"$meta"
     sort -u "$meta" >"$meta.ref"
     mv "$meta.ref" "$meta"
+    touch "$metat"
 
     RELEASE "$meta"
   fi