Initial import
authorkarltk <karltk@gentoo.org>
Fri, 15 Nov 2002 00:31:44 +0000 (00:31 -0000)
committerkarltk <karltk@gentoo.org>
Fri, 15 Nov 2002 00:31:44 +0000 (00:31 -0000)
svn path=/; revision=12

trunk/src/distfiles-clean/AUTHORS [new file with mode: 0644]
trunk/src/distfiles-clean/ChangeLog [new file with mode: 0644]
trunk/src/distfiles-clean/TODO [new file with mode: 0644]
trunk/src/distfiles-clean/distfiles-clean [new file with mode: 0644]

diff --git a/trunk/src/distfiles-clean/AUTHORS b/trunk/src/distfiles-clean/AUTHORS
new file mode 100644 (file)
index 0000000..b9121b4
--- /dev/null
@@ -0,0 +1,4 @@
+
+José Fonseca <j_r_fonseca@yahoo.co.uk>
+ - Wrote all of it.
+
diff --git a/trunk/src/distfiles-clean/ChangeLog b/trunk/src/distfiles-clean/ChangeLog
new file mode 100644 (file)
index 0000000..dfe6aa8
--- /dev/null
@@ -0,0 +1,2 @@
+2002-15-11: Karl Trygve Kalleberg <karltk@gentoo.org>
+       * Imported newest contributions from #10647.
diff --git a/trunk/src/distfiles-clean/TODO b/trunk/src/distfiles-clean/TODO
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/trunk/src/distfiles-clean/distfiles-clean b/trunk/src/distfiles-clean/distfiles-clean
new file mode 100644 (file)
index 0000000..23af32b
--- /dev/null
@@ -0,0 +1,78 @@
+#!/bin/sh
+#
+# distfiles-clean
+#
+# Cleans unused files from Portage's distfiles directory.
+#
+# José Fonseca <j_r_fonseca@yahoo.co.uk>
+
+PROGRAM=`basename "$0"`
+
+while [ ${#} -gt 0 ]
+do
+       case "$1" in
+               -h|--help)
+                       USAGE=y
+                       break
+                       ;;
+               -i|--ignore)
+                       IGNORE="$IGNORE $2"
+                       shift 2
+                       ;;
+               -I|--ignore-file)
+                       IGNORE="$IGNORE `cat "$2"`"
+                       shift 2
+                       ;;
+               -p|--pretend)
+                       PRETEND=y
+                       shift
+                       ;;
+               *)
+                       echo "$PROGRAM: Invalid option \'$1\'" 1>&2
+                       USAGE=y
+                       break
+                       ;;
+       esac
+done
+
+# For PORTDIR and DISTDIR
+. /etc/make.globals
+. /etc/make.conf
+
+if [ "$USAGE" ]
+then
+       echo "Usage:    $PROGRAM [-h|--help] [-i|--ignore <glob>] [-I|--ignore-file <globfile>] [-p|--pretend]"
+       echo "Cleans unused files from $DISTDIR directory."
+       exit
+fi
+
+DBDIR=/var/db/pkg
+CACHEDIR=/var/cache/edb/dep
+
+for DIR in "$PORTDIR" "$DISTDIR" "$DBDIR" "$CACHEDIR"
+do
+       if [ ! -d "$DIR" ]
+       then
+               echo "$PROGRAM: \'$DIR\' not found."
+               exit
+       fi
+done
+
+TMPFILE=`mktemp /tmp/$PROGRAM.XXXXXX`
+
+cd "$DISTDIR"
+
+{
+       echo "cvs-src"
+       [ "$IGNORE" ] && ls -1d $IGNORE
+       find "$DBDIR" -name '*.ebuild' | sed -n -e "s:^$DBDIR/\([^/]*\)/\([^/]*\)/\([^/]*\)\.ebuild$:$CACHEDIR/\1/\3:p" | xargs sed -s -e '4!d;/^$/d;s/[[:alnum:]]\+?\|(\|)//g;s/\<[^[:space:]]\+\/\<//g;s/^[[:space:]]\+//g;s/[[:space:]]\+$//g;s/[[:space:]]\+/\n/g'
+} | sort -u > "$TMPFILE" && ls -1 | comm -23 - "$TMPFILE" | {
+       if [ "$PRETEND" ]
+       then
+               cat
+       else
+               xargs rm -f
+       fi
+}
+
+rm "$TMPFILE"