3 [ "$include_dbmeta" ] && return 0
7 # LENGTH WIDTH HEIGHT TAGS COMMENT NAME
11 META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME
15 META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME
21 local name="$1" meta_db="$_DATA/.index/meta"
23 [ "${name%%/*}" != "$name" ] \
24 && meta_db="$_DATA/${name%%/*}/.index/meta"
25 name="$(STRING "${name##*/}")"
28 META_LENGTH='' META_WIDTH='' META_HEIGHT='' META_TAGS=''
29 META_COMMENT='' META_NAME=''
32 read -r META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME
33 elif [ "$name" -a -f "$meta_db" -a -r "$meta_db" ]; then
34 while read -r META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME; do
35 [ "${META_NAME%${CR}}" = "$name" ] && break
37 [ "${META_NAME%${CR}}" = "$name" ] || eval "$UNSET_META"
39 if [ "$META_NAME" ]; then
40 META_NAME="$(UNSTRING "${META_NAME%${CR}}")"
41 META_COMMENT="$(UNSTRING "${META_COMMENT#comment=}")"
42 META_TAGS="$(UNSTRING "${META_TAGS#tags=}")"
50 local name="${1:=${META_NAME}}" tags comment length width height
51 eval LENGTH WIDTH HEIGH TAGS COMMENT NAME
52 local arg cnt meta_db="$_DATA/.index/meta"
54 [ "${name%%/*}" != "$name" ] \
55 && meta_db="$_DATA/${name%%/*}/.index/meta"
56 name="$(STRING "${name##*/}")"
58 for arg in "$@"; do case $arg in
59 comment=*) comment="${arg#*=}";;
60 tags=*) tags="${arg#*=}";;
61 lenght=*) lenght="${arg#*=}";;
62 width=*) width="${arg#*=}";;
63 height=*) height="${arg#*=}";;
66 if LOCK "$meta_db"; then
67 while read -r LENGTH WIDTH HEIGHT TAGS COMMENT NAME; do
68 if [ "$name" = "${NAME%${CR}}" ]; then
69 printf '%i %i %i tags=%s comment=%s %s\r\n' \
70 "${length:-${length-${LENGTH}}${length+0}}" \
71 "${width:-${width-${WIDTH}}${width+0}}" \
72 "${height:-${height-${HEIGHT}}${height+0}}" \
73 "$(STRING "${tags-$(UNSTRING "${TAGS#tags=}")}")" \
74 "$(STRING "${comment-$(UNSTRING "${COMMENT#comment=}")}")" \
75 "$(STRING "${name-$(UNSTRING "${NAME%${CR}}")}")"
77 printf '%i %i %i tags=%s comment=%s %s\r\n' \
78 "$length" "$width" "$height" "${TAGS#tags=}" \
79 "${COMMENT#comment=}" "${NAME%${CR}}"
81 done <"$meta_db" >"${meta_db}.$$"
82 mv -- "${meta_db}.$$" "${meta_db}"
90 local name="$1" meta_db="$_DATA/.index/meta"
91 local LENGTH WIDTH HEIGHT TAGS COMMENT NAME
93 [ "${name%%/*}" != "$name" ] \
94 && meta_db="$_DATA/${name%%/*}/.index/meta"
95 name="$(STRING "${name##*/}")"
97 if LOCK "$meta_db"; then
98 while read -r LENGTH WIDTH HEIGHT TAGS COMMENT NAME; do
99 if [ "$name" = "${NAME%${CR}}" ]; then
104 printf '0 0 0 tags=\\ comment=\\ %s\r\n' \
105 "${name}" >>"$meta_db"
113 local name="$1" meta_db="$_DATA/.index/meta"
114 local LENGTH WIDTH HEIGHT TAGS COMMENT NAME
116 [ "${name%%/*}" != "$name" ] \
117 && meta_db="$_DATA/${name%%/*}/.index/meta"
118 name="$(STRING "${name##*/}")"
120 if LOCK "$meta_db"; then
121 while read -r LENGTH WIDTH HEIGHT TAGS COMMENT NAME; do
122 [ "$name" = "${NAME%${CR}}" ] \
123 || printf '%i %i %i tags=%s comment=%s %s\r\n' \
124 "$length" "$width" "$height" "${TAGS#tags=}" \
125 "${COMMENT#comment=}" "${NAME%${CR}}"
126 done <"$meta_db" >"${meta_db}.$$"
128 mv -- "${meta_db}.$$" "$meta_db"
137 local LENGTH WIDTH HEIGHT TAGS COMMENT NAME
139 if [ "$#" -eq 0 ]; then
140 find "$_DATA" -path '*/.index/meta'
144 | while read meta; do
146 pfx="${pfx%/.index/meta}"
147 pfx="$(STRING "${pfx#/}")"
148 [ "$pfx" = '\' ] && pfx='' || pfx="${pfx}/"
150 while read -r LENGTH WIDTH HEIGHT TAGS COMMENT NAME; do
151 printf '%i %i %i tags=%s comment=%s %s%s\r\n' \
152 $LENGTH $WIDTH $HEIGHT "${TAGS#tags=}" \
153 "${COMMENT#comment=}" "${pfx}" "${NAME%${CR}}"