diff --git a/src/bee-cache.sh.in b/src/bee-cache.sh.in index aff3a95..0ec8df5 100644 --- a/src/bee-cache.sh.in +++ b/src/bee-cache.sh.in @@ -36,12 +36,16 @@ VERSION=${BEE_VERSION} : ${BEECACHE_INVENTORY=${BEECACHE_CACHEDIR}/INVENTORY} function cache_verify() { - if ! ${BEEFLOCK} --shared "${BEECACHE_INVENTORY}" \ + if ${BEEFLOCK} --shared "${BEECACHE_INVENTORY}" \ sort -c -u -r -k8 -k1 "${BEECACHE_INVENTORY}" 2>/dev/null ; then - rm -fr "${BEECACHE_CACHEDIR}" + return fi + rm -fr "${BEECACHE_CACHEDIR}" mkdir -p "${BEECACHE_CACHEDIR}" + + ${BEEFLOCK} ${BEECACHE_INVENTORY} \ + ${BEE_LIBEXECDIR}/bee/bee-cache-update >/dev/null } function cache_update() { @@ -67,6 +71,11 @@ function cache_update_pkg() { return 0 } +function cache_grep() { + ${BEEFLOCK} --shared ${BEECACHE_INVENTORY} \ + grep "${@}" ${BEECACHE_INVENTORY} +} + function print_conflicts() { local pkg=${1} @@ -235,6 +244,9 @@ cache_verify tmpinstall_to_filenames case "${cmd}" in + grep) + cache_grep "${@}" | cut -d ' ' -f${FIELDS} + ;; update) cache_update "${@}" ;;