12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #!/usr/bin/env bash
- # APT P2P Clean
- #
- # Douglas Thrift
- #
- # $Id$
- function usage()
- {
- cat <<-EOF
- Usage: $program [options]
- Options:
- -e, --execute clean up the apt-p2p cache
- -h, --help show this help message and exit
- -n, --no-execute show what would be done to clean up the apt-p2p cache
- EOF
- exit $@
- }
- program=`basename $0`
- args=`getopt -l 'execute,help,no-execute' -n "$program" -o 'ehn' -- "$@"`
- val=$?
- [[ $val != 0 ]] && usage $val
- eval set -- "$args"
- unset args val
- until [[ "$1" == -- ]]; do
- case "$1" in
- (-e|--execute)
- execute=1
- ;;
- (-h|--help)
- usage
- ;;
- (-n|--no-execute)
- execute=0
- ;;
- esac
- shift
- done
- [[ -z $execute ]] && usage
- set -e
- if [[ $execute -eq 1 ]]; then
- echo 'Removing files:'
- else
- echo 'Would remove files:'
- fi
- find /var/cache/apt-p2p/cache -name '*.deb' | (
- freed=0
-
- while read deb; do
- if [[ ! -f /var/cache/apt/archives/${deb##*/} ]]; then
- ((freed += `du -B 1 $deb | cut -f 1`))
- echo ${deb##*/}
- [[ $execute -eq 1 ]] && rm -f $deb
- fi
- done
- if [[ $execute -eq 1 ]]; then
- [[ $freed != 0 ]] && invoke-rc.d apt-p2p restart
- echo -n 'Freed'
- else
- echo -n 'Would free'
- fi
- echo " `bc <<-EOF
- freed=$freed
- scale=1
- if (freed >= 1024 ^ 3) print freed / 1024 ^ 3, "G" else if (freed >= 1024 ^ 2) print freed / 1024 ^ 2, "M" else if (freed >= 1024) print freed / 1024, "K" else freed
- EOF`B of disk space"
- )
|