From bbdc8f0bda4710b9e8d882af3c3b77b7cf922f5d Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Mon, 27 Feb 2012 06:44:36 -0800 Subject: Added tool for verifying jar cache. And for removing corrupt files. --- tools/verify-jar-cache | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 tools/verify-jar-cache (limited to 'tools') diff --git a/tools/verify-jar-cache b/tools/verify-jar-cache new file mode 100755 index 0000000000..1e86264ecb --- /dev/null +++ b/tools/verify-jar-cache @@ -0,0 +1,33 @@ +#!/bin/sh +# +# Discovers files whose sha sum does not match the +# sha embedded in their directory name from ~/.sbt/cache/scala. +# Pass -f to remove them, otherwise it just prints them. + +set -e +cd ~/.sbt/cache/scala +unset failed + +unset removal +[[ $1 == "-f" ]] && removal=true + +for file in $(find . -type f); do + sha=$(echo "${file:2}" | sed 's/\/.*$//') + sum=$(shasum "$file" | sed 's/ .*$//') + if [[ $sum != $sha ]]; then + failed=true + if [[ -n $removal ]]; then + echo "Removing corrupt file $file, shasum=$sum" + rm -rf $sha + else + echo "Found corrupt file $file, shasum=$sum." + fi + fi +done + +if [[ -z $failed ]]; then + echo "All cached files match their shas." +elif [[ -z $removal ]]; then + echo "" + echo "Run again with -f to remove the corrupt files." +fi -- cgit v1.2.3