3 [ "$include_dbmeta" ] && return 0
6 . "$_EXEC/cgilite/storage.sh"
9 # LENGTH WIDTH HEIGHT TAGS COMMENT NAME
13 META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME
17 META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME
23 local name="$1" meta_db="$_DATA/.index/meta"
25 [ "${name%%/*}" != "$name" ] \
26 && meta_db="$_DATA/${name%%/*}/.index/meta"
27 name="$(STRING "${name##*/}")"
30 META_LENGTH='' META_WIDTH='' META_HEIGHT='' META_TAGS=''
31 META_COMMENT='' META_NAME=''
34 read -r META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME
35 elif [ "$name" -a -f "$meta_db" -a -r "$meta_db" ]; then
36 read -r META_LENGTH META_WIDTH META_HEIGHT META_TAGS META_COMMENT META_NAME <<-EOF
37 $(grep -F " ${name}${CR}" "$meta_db")
40 if [ "$META_NAME" ]; then
41 META_NAME="$(UNSTRING "${META_NAME%${CR}}")"
42 META_COMMENT="$(UNSTRING "${META_COMMENT#comment=}")"
43 META_TAGS="$(UNSTRING "${META_TAGS#tags=}")"
51 local name="${1:=${META_NAME}}" tags comment length width height
52 local LENGTH WIDTH HEIGH TAGS COMMENT NAME
53 local arg cnt meta_db="$_DATA/.index/meta"
55 [ "${name%%/*}" != "$name" ] \
56 && meta_db="$_DATA/${name%%/*}/.index/meta"
57 name="$(STRING "${name##*/}")"
59 for arg in "$@"; do case $arg in
60 comment=*) comment="${arg#*=}";;
61 tags=*) tags="${arg#*=}";;
62 lenght=*) lenght="${arg#*=}";;
63 width=*) width="${arg#*=}";;
64 height=*) height="${arg#*=}";;
67 if LOCK "$meta_db"; then
68 while read -r LENGTH WIDTH HEIGHT TAGS COMMENT NAME; do
69 if [ "$name" = "${NAME%${CR}}" ]; then
70 printf '%i %i %i tags=%s comment=%s %s\r\n' \
71 "${length:-${length-${LENGTH}}${length+0}}" \
72 "${width:-${width-${WIDTH}}${width+0}}" \
73 "${height:-${height-${HEIGHT}}${height+0}}" \
74 "$(STRING "${tags-$(UNSTRING "${TAGS#tags=}")}")" \
75 "$(STRING "${comment-$(UNSTRING "${COMMENT#comment=}")}")" \
76 "$(STRING "${name-$(UNSTRING "${NAME%${CR}}")}")"
78 printf '%i %i %i tags=%s comment=%s %s\r\n' \
79 "$LENGTH" "$WIDTH" "$HEIGHT" "${TAGS#tags=}" \
80 "${COMMENT#comment=}" "${NAME%${CR}}"
82 done <"$meta_db" >"${meta_db}.$$"
83 mv -- "${meta_db}.$$" "${meta_db}"
91 local name="$1" meta_db="$_DATA/.index/meta"
92 local LENGTH WIDTH HEIGHT TAGS COMMENT NAME
94 [ "${name%%/*}" != "$name" ] \
95 && meta_db="$_DATA/${name%%/*}/.index/meta"
96 name="$(STRING "${name##*/}")"
98 if LOCK "$meta_db"; then
99 while read -r LENGTH WIDTH HEIGHT TAGS COMMENT NAME; do
100 if [ "$name" = "${NAME%${CR}}" ]; then
105 printf '0 0 0 tags=\\ comment=\\ %s\r\n' \
106 "${name}" >>"$meta_db"
114 local name="$1" meta_db="$_DATA/.index/meta"
115 local LENGTH WIDTH HEIGHT TAGS COMMENT NAME
117 [ "${name%%/*}" != "$name" ] \
118 && meta_db="$_DATA/${name%%/*}/.index/meta"
119 name="$(STRING "${name##*/}")"
121 if LOCK "$meta_db"; then
122 while read -r LENGTH WIDTH HEIGHT TAGS COMMENT NAME; do
123 [ "$name" = "${NAME%${CR}}" ] \
124 || printf '%i %i %i tags=%s comment=%s %s\r\n' \
125 "$length" "$width" "$height" "${TAGS#tags=}" \
126 "${COMMENT#comment=}" "${NAME%${CR}}"
127 done <"$meta_db" >"${meta_db}.$$"
129 mv -- "${meta_db}.$$" "$meta_db"
138 local LENGTH WIDTH HEIGHT TAGS COMMENT NAME
140 if [ "$#" -eq 0 ]; then
141 find "$_DATA" -path '*/.index/meta'
145 | while read meta; do
147 pfx="${pfx%/.index/meta}"
148 pfx="$(STRING "${pfx#/}")"
149 [ "$pfx" = '\' ] && pfx='' || pfx="${pfx}/"
151 while read -r LENGTH WIDTH HEIGHT TAGS COMMENT NAME; do
152 printf '%i %i %i tags=%s comment=%s %s%s\r\n' \
153 $LENGTH $WIDTH $HEIGHT "${TAGS#tags=}" \
154 "${COMMENT#comment=}" "${pfx}" "${NAME%${CR}}"