]> git.plutz.net Git - shellwiki/blobdiff - macros/attachments
Merge commit '1f887be68c8e777cdaa6853eb942f7b691bc1e4e'
[shellwiki] / macros / attachments
index 7acc8063b32af36fa84db64f40d89e6367ca1460..34a7bebc98b2552387366cb8b5876746b09c9f7e 100755 (executable)
@@ -1,6 +1,9 @@
 #!/bin/sh
 
 . "$_EXEC/cgilite/cgilite.sh"
+. "$_EXEC/cgilite/users.sh"
+. "$_EXEC/acl.sh"
+. "$_EXEC/tools.sh"
 
 page="$1"
 
@@ -8,7 +11,9 @@ if [ "${page#/}" = "$page" ]; then
   page="$(PATH "${PATH_INFO}/$page")"
 fi
 
-printf %s\\n '<ul class="attachment list">'
+acl_read "$page" || exit 0
+
+printf %s\\n '<ul class="macro attachment list">'
 
 for file in "$_EXEC/pages/$page/#attachments"/* "$_DATA/pages/$page/#attachments"/*; do
   [ "$file" = "$_EXEC/pages/$page/#attachments/${file##*/}" \
@@ -16,25 +21,9 @@ for file in "$_EXEC/pages/$page/#attachments"/* "$_DATA/pages/$page/#attachments
   stat="$(stat -c '%s %Y' -- "$file" 2>&-)" || continue
   size="${stat% *}" date="${stat#* }"
 
-  if [ $size -gt $((1024 * 1024 * 1024)) ]; then
-    size=$((size / 1024 / 1024 / 1024 * 10 + size / 1024 / 1024 % 1024 / 100))
-    size="$((size / 10)).$((size % 10)) GB"
-
-  elif [ $size -gt $((1024 * 1024)) ]; then
-    size=$((size / 1024 / 1024 * 10 + size / 1024 % 1024 / 100))
-    size="$((size / 10)).$((size % 10)) MB"
-
-  elif [ $size -gt $((1024)) ]; then
-    size=$((size / 1024 * 10 + size % 1024 / 100))
-    size="$((size / 10)).$((size % 10)) KB"
-
-  else
-    size="${size} B"
-  fi
-
   printf '<li><span class=name>%s</span>
           <span class=size>%s</span><span class=date>%s</span></li>' \
-    "$(HTML "${file##*/}")" "$size" "$(date -d @"$date" +"%F %T")"
+    "$(HTML "${file##*/}")" "$(size_human "$size")" "$(date -d @"$date" +"%F %T")"
 done
 
 printf %s\\n '</ul>'