]> git.plutz.net Git - serve0/commitdiff
quicker tag collection
authorPaul Hänsch <paul@plutz.net>
Tue, 16 Nov 2021 00:30:03 +0000 (01:30 +0100)
committerPaul Hänsch <paul@plutz.net>
Tue, 16 Nov 2021 00:30:03 +0000 (01:30 +0100)
widgets.sh [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 6af562e..35b485a
@@ -14,23 +14,14 @@ c_tags="$_DATA/.index/tags.cache"; c_tagcategories="$_DATA/.index/tagcategories.
 if [ ! -s "$c_tags" -o ! -s "$c_tagcategories" ] \
    || [ "$(find "$_DATA/" -path '*/.index/meta' -newer "$c_tags")" ]
   then
-  w_tags="$( cn=1
-    find "$_DATA/" -path '*/.index/meta' -print0 \
-    | xargs -0 -r sed -E '
-      s;^.*\t.*\t.*\ttags=(.*)\tcomment=.*\t.*\r$;\1;;
-      s;,;\n;g;' \
-    | { sort; printf '\n'; } \
-    | while read -r tag; do
-      if [ "$tag" = "$otag" ]; then
-        cn=$((cn + 1))
-      else
-        printf "%i     %s\n" "$cn" "$(UNSTRING "$otag")"
-        cn=1
-      fi
-      otag="$tag"
-    done \
-    |sort -rn |cut -f2- |HTML \
-    |sed "s-&#x0A;-\n-g; s;\n\n;\n;g;"
+  w_tags="$(
+    list_meta |sed -E '
+      s;^.*\ttags=([^\t]*)\t.*$;\1;;
+      s;,;\n;g;
+    ' \
+    | sort |uniq -c |sed -E 's;^ *[0-9]+ ;;;' |sort -rn \
+    | UNSTRING | HTML \
+    | sed -E 's;&#x0A\;;\n;g; s;\n+;\n;g;'
   )"
   w_tagcategories="$(printf %s "$w_tags" | sed -rn '/:/s;^-?([^:]+):.*$;\1;p' |sort -u )"
   printf %s "$w_tags" >"$c_tags"