clipmenu-spmenu/clipfsck

29 lines
714 B
Bash
Executable file

#!/usr/bin/env bash
shopt -s nullglob
cache_dir=$(clipctl cache-dir)
cache_file=$cache_dir/line_cache
declare -A cksums
while IFS= read -r line; do
cksum=$(cksum <<< "$line")
cksums["$cksum"]="$line"
# Are all cache entries represented by a file?
full_file=$cache_dir/$cksum
if ! [[ -f $full_file ]]; then
printf 'cache entry without file: %s -> %s\n' "$line" "$full_file" >&2
fi
done < <(cut -d' ' -f2- < "$cache_file")
# Are all files represented by a cache entry?
for file in "$cache_dir"/[012346789]*; do
cksum=${file##*/}
line=${cksums["$cksum"]-_missing_}
if [[ $line == _missing_ ]]; then
printf 'file without cache entry: %s\n' "$file"
fi
done