meta_name() {
local fn
- fn="$1"
- fn="${fn##*/}"
- fn="${fn%.*}"
- STRING "$fn"
- printf '\r'
+ fn="$1"; fn="${fn##*/}"; fn="${fn%.*}"
+ STRING "$fn"; printf '\r'
}
meta_line() {
name="$(meta_name "$file")"
if [ -d "${meta%/meta}" ] && LOCK "$meta"; then
- grep -avF " ${name}" "$meta" >"$meta.tmp"
- grep -aF " ${name}" "$meta" >>"$meta.trash"
- mv "$meta.tmp" "$meta"
+ grep -avF " ${name}" "$meta" >"${meta}.tmp"
+ grep -aF " ${name}" "$meta" >>"${meta}.trash"
+ mv "${meta}.tmp" "$meta"
RELEASE "$meta"
fi
}
meta_info(){
local file meta
- file="$1"
- meta="${file%/*}/.index/meta"
+ file="$1"; meta="${file%/*}/.index/meta"
if [ -d "${meta%/meta}" ]; then
grep -aF " $(meta_name "$file")" "$meta" \
| grep -m1 -axE '[0-9]+ [0-9]+ [0-9]+ tags=[^ ]* comment=[^ ]* .+' \
|| meta_file "$file"
else
- printf '0\t0\t0\ttags=\tcomment=\t\r'
+ printf '0\t0\t0\ttags=\tcomment=\t%s\r' "$(meta_name "$file")"
fi
}
grep -qF " $(meta_name "$v")" "$meta" \
|| meta_line "$v"
done >>"$meta"
- rm "$meta.ref"
+ sort -u "$meta" >"$meta.ref"
+ mv "$meta.ref" "$meta"
RELEASE "$meta"
fi