feat: check thumbnail cleanup on files deletion + correct ref counter
This commit is contained in:
Executable
+66
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
if ! which b3sum >/dev/null 2>/dev/null
|
||||
then
|
||||
echo "please install b3sum (brew install b3sum on Mac, apt installb3sum on Debian, etc)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
HASH=""
|
||||
FILE_CACHE=""
|
||||
|
||||
# return the hash of a file (stores into HASH variable)
|
||||
oxi_hash() {
|
||||
if [[ -z "$HASH" || "$FILE_CACHE" != "$1" ]]
|
||||
then
|
||||
HASH=$(b3sum --no-names "$1")
|
||||
FILE_CACHE="$1"
|
||||
fi
|
||||
echo "$HASH"
|
||||
}
|
||||
|
||||
# returns the local blob localisation
|
||||
local_blob_path() {
|
||||
local BLOB_PREFIX
|
||||
oxi_hash "$1" >/dev/null
|
||||
BLOB_PREFIX=${HASH:0:2}
|
||||
echo ".blobs/$BLOB_PREFIX/$HASH.blob"
|
||||
}
|
||||
|
||||
# returns the preview localisation without it's extension
|
||||
preview_path() {
|
||||
local SIZE
|
||||
oxi_hash "$1" >/dev/null
|
||||
# default size: icon
|
||||
SIZE="${3:-icon}"
|
||||
echo ".thumbnails/$SIZE/$HASH"
|
||||
}
|
||||
|
||||
assert_local_blob_existsy() {
|
||||
BLOB_PATH=$(local_blob_path "$1")
|
||||
STORAGE="$2"
|
||||
if [[ -e $STORAGE/$BLOB_PATH ]]
|
||||
then
|
||||
echo "$BLOB_PATH exists"
|
||||
return 0
|
||||
else
|
||||
echo $'\e[31m'"$BLOB_PATH does not exist"$'\e[0m' >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
assert_preview_existsy() {
|
||||
THUMBNAIL_PATH=$(preview_path "$1")
|
||||
STORAGE="$2"
|
||||
if [[ -e "$STORAGE/$THUMBNAIL_PATH.jpg" || -e "$STORAGE/$THUMBNAIL_PATH.webp" ]]
|
||||
then
|
||||
echo "thumbnail $THUMBNAIL_PATH.(jpg|webp) exists"
|
||||
return 0
|
||||
else
|
||||
echo $'\e[31m'"thumbnail $THUMBNAIL_PATH.(jpg|webp) does not exist"$'\e[0m' >&2
|
||||
echo $STORAGE
|
||||
find $STORAGE/.thumbnails
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user