[ "$include_dbmeta" ] && return 0
include_dbmeta="$0"
+. "$_EXEC/cgilite/storage.sh"
+
# == FILE FORMAT ==
# LENGTH WIDTH HEIGHT TAGS COMMENT NAME
META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME
'
-eval "$UNSET_VIDEO"
+eval "$UNSET_META"
read_meta() {
local name="$1" meta_db="$_DATA/.index/meta"
if [ $# -eq 0 ]; then
read -r META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME
elif [ "$name" -a -f "$meta_db" -a -r "$meta_db" ]; then
- while read -r META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME; do
- [ "${META_NAME%${CR}}" = "$name" ] && break
- done <"${meta_db}"
- [ "${META_NAME%${CR}}" = "$name" ] || eval "$UNSET_META"
+ read -r META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME <<-EOF
+ $(grep -F " ${name}${CR}" "$meta_db")
+ EOF
fi
if [ "$META_NAME" ]; then
META_NAME="$(UNSTRING "${META_NAME%${CR}}")"
update_meta(){
local name="${1:=${META_NAME}}" tags comment length width height
- eval LENGTH WIDTH HEIGH TAGS COMMENT NAME
+ local LENGTH WIDTH HEIGH TAGS COMMENT NAME
local arg cnt meta_db="$_DATA/.index/meta"
[ "${name%%/*}" != "$name" ] \
esac; done
if LOCK "$meta_db"; then
- while read -r LENGTH WIDTH HEIGHT TAGS COMMENT NAME; do
- if [ "$name" = "${NAME%${CR}}" ]; then
- printf '%i %i %i tags=%s comment=%s %s\r\n' \
- "${length:-${length-${LENGTH}}${length+0}}" \
- "${width:-${width-${WIDTH}}${width+0}}" \
- "${height:-${height-${HEIGHT}}${height+0}}" \
- "$(STRING "${tags-$(UNSTRING "${TAGS#tags=}")}")" \
- "$(STRING "${comment-$(UNSTRING "${COMMENT#comment=}")}")" \
- "$(STRING "${name-$(UNSTRING "${NAME%${CR}}")}")"
- else
- printf '%i %i %i tags=%s comment=%s %s\r\n' \
- "$length" "$width" "$height" "${TAGS#tags=}" \
- "${COMMENT#comment=}" "${NAME%${CR}}"
- fi
- done <"$meta_db" >"${meta_db}.$$"
+ read -r LENGTH WIDTH HEIGHT TAGS COMMENT NAME <<-EOF
+ $(grep -F " ${name}${CR}" "$meta_db")
+ EOF
+ if [ ! "$NAME" ]; then
+ RELEASE "$meta_db"
+ return 1
+ fi
+ printf '%i %i %i tags=%s comment=%s %s\r\n' \
+ "${length:-${length-${LENGTH}}${length+0}}" \
+ "${width:-${width-${WIDTH}}${width+0}}" \
+ "${height:-${height-${HEIGHT}}${height+0}}" \
+ "$(STRING "${tags-$(UNSTRING "${TAGS#tags=}")}")" \
+ "$(STRING "${comment-$(UNSTRING "${COMMENT#comment=}")}")" \
+ "${NAME%${CR}}" \
+ >"${meta_db}.$$"
+
+ grep -vF " ${name}${CR}" "$meta_db" >>"${meta_db}.$$"
+
mv -- "${meta_db}.$$" "${meta_db}"
RELEASE "$meta_db"
else