]> git.plutz.net Git - serve0/commitdiff
sanitizing and rereading of meta data
authorPaul Hänsch <paul@plutz.net>
Wed, 18 Jul 2018 05:49:33 +0000 (07:49 +0200)
committerPaul Hänsch <paul@plutz.net>
Wed, 18 Jul 2018 05:49:33 +0000 (07:49 +0200)
multitag.sh

index 49bf273c9ed951f72cd19d031ff5d2ad69d024bb..649fb7858d5a05f33cbe0c9b6e669b3358f60ffd 100644 (file)
@@ -7,12 +7,20 @@ for select in $(seq 1 $(POST_COUNT select)); do
   file="$_DATA/$ITEM/$(POST select $select)"
   meta="${file%/*}/.index/meta"
 
-  read -r length width height tags comment fn <<-EOF
+  fn="$(meta_name "$file")"
+  read -r length width height tags comment discard <<-EOF
        $(meta_info "$file")
        EOF
+  [ "${length%%[1-9]*}" -o "${width%%[1-9]*}" -o "${height%%[1-9]*}" = 0 ] \
+  && read -r length width height discard <<-EOF
+       $(meta_line "$file"; echo Rereading meta for "$file" >&2)
+       EOF
+  [ "${tags%%tags=*}" ] && tags='tags=';
+  [ "${comment%%comment=*}" ] && comment='comment='
 
   if LOCK "$meta"; then
-    grep -vF " $fn" "$meta" >"${meta}.tmp"
+    grep -avF "        $fn" "$meta" >"${meta}.tmp"
+
     tags="$(UNSTRING "${tags#tags=}" |tr , '\n')"
 
     for tn in $(seq 1 $(POST_COUNT tag)); do