Run CM_MAX_CLIPS handling/vacuuming out of selection loop
This commit is contained in:
parent
bbf495c147
commit
879854975e
56
clipmenud
56
clipmenud
|
@ -263,36 +263,36 @@ while true; do
|
||||||
# we would skip first.
|
# we would skip first.
|
||||||
_xsel -o --clipboard | _xsel -i --clipboard
|
_xsel -o --clipboard | _xsel -i --clipboard
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Fail quickly if we're not far enough over, to avoid calling `cksum` a
|
|
||||||
# lot and killing perf if we're not batched.
|
|
||||||
if (( CM_MAX_CLIPS )) && [[ -f $cache_file ]] &&
|
|
||||||
(( "$(wc -l < "$cache_file")" > CM_MAX_CLIPS_THRESH )); then
|
|
||||||
info "Trimming clip cache to CM_MAX_CLIPS ($CM_MAX_CLIPS)"
|
|
||||||
trunc_tmp=$(mktemp)
|
|
||||||
tail -n "$CM_MAX_CLIPS" "$cache_file" | uniq > "$trunc_tmp"
|
|
||||||
mv -- "$trunc_tmp" "$cache_file"
|
|
||||||
|
|
||||||
# Vacuum up unreferenced clips. They may either have been
|
|
||||||
# unreferenced by the above CM_MAX_CLIPS code, or they may be old
|
|
||||||
# possible partials.
|
|
||||||
info "Vacuuming unreferenced clip files"
|
|
||||||
while IFS= read -r line; do
|
|
||||||
cksum=$(cksum <<< "$line")
|
|
||||||
cksums["$cksum"]="$line"
|
|
||||||
done < <(cut -d' ' -f2- < "$cache_file")
|
|
||||||
|
|
||||||
for file in "$cache_dir"/[012346789]*; do
|
|
||||||
cksum=${file##*/}
|
|
||||||
line=${cksums["$cksum"]-_missing_}
|
|
||||||
if [[ $line == _missing_ ]]; then
|
|
||||||
debug "Vacuuming due to lack of reference: $file"
|
|
||||||
rm -- "$file"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Fail quickly if we're not far enough over, to avoid calling `cksum` a
|
||||||
|
# lot and killing perf if we're not batched.
|
||||||
|
if (( CM_MAX_CLIPS )) && [[ -f $cache_file ]] &&
|
||||||
|
(( "$(wc -l < "$cache_file")" > CM_MAX_CLIPS_THRESH )); then
|
||||||
|
info "Trimming clip cache to CM_MAX_CLIPS ($CM_MAX_CLIPS)"
|
||||||
|
trunc_tmp=$(mktemp)
|
||||||
|
tail -n "$CM_MAX_CLIPS" "$cache_file" | uniq > "$trunc_tmp"
|
||||||
|
mv -- "$trunc_tmp" "$cache_file"
|
||||||
|
|
||||||
|
# Vacuum up unreferenced clips. They may either have been
|
||||||
|
# unreferenced by the above CM_MAX_CLIPS code, or they may be old
|
||||||
|
# possible partials.
|
||||||
|
info "Vacuuming unreferenced clip files"
|
||||||
|
while IFS= read -r line; do
|
||||||
|
cksum=$(cksum <<< "$line")
|
||||||
|
cksums["$cksum"]="$line"
|
||||||
|
done < <(cut -d' ' -f2- < "$cache_file")
|
||||||
|
|
||||||
|
for file in "$cache_dir"/[012346789]*; do
|
||||||
|
cksum=${file##*/}
|
||||||
|
line=${cksums["$cksum"]-_missing_}
|
||||||
|
if [[ $line == _missing_ ]]; then
|
||||||
|
debug "Vacuuming due to lack of reference: $file"
|
||||||
|
rm -- "$file"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
flock -u "$lock_fd"
|
flock -u "$lock_fd"
|
||||||
|
|
||||||
if (( CM_ONESHOT )); then
|
if (( CM_ONESHOT )); then
|
||||||
|
|
Loading…
Reference in a new issue