#!/bin/bash # cleandistfiles - remove old distfiles from gentoo # # Karsten Kruse - 2004 - www.tecneeq.de raw_files="/tmp/packages_raw.txt" dup_files="packages_dup.txt" ack_files="packages_ok.txt" source_dir="/usr/portage/distfiles" backup_dir="/usr/portage/distfiles_backup" echo "create package list" emerge -ef world > $raw_files echo "remove unneeded text and duplicate files from list" cat $raw_files | \ while read filename ; do case "$filename" in ">>> md5 src_uri"*) echo ${filename##*' '} >> $dup_files ;; esac done sort -u $dup_files > $ack_files echo "move distfiles to backup file" mkdir -p $backup_dir mv -f $source_dir/* $backup_dir echo "move good distfiles back to source directory" cat $ack_files | \ while read filename ; do mv "$backup_dir/$filename" $source_dir/ done echo "remove backup directory, old distfiles and tempfiles" rm -rf $backup_dir rm -f $raw_files $dup_files $ack_files echo "done" # eof