diff options
Diffstat (limited to 'ports-mgmt')
-rw-r--r-- | ports-mgmt/pkg_remove/Makefile | 21 | ||||
-rw-r--r-- | ports-mgmt/pkg_remove/distinfo | 1 | ||||
-rw-r--r-- | ports-mgmt/pkg_remove/src/pkg_remove.txt | 34 |
3 files changed, 45 insertions, 11 deletions
diff --git a/ports-mgmt/pkg_remove/Makefile b/ports-mgmt/pkg_remove/Makefile index ba8fbb637e1b..9131bd14ca23 100644 --- a/ports-mgmt/pkg_remove/Makefile +++ b/ports-mgmt/pkg_remove/Makefile @@ -6,21 +6,22 @@ # PORTNAME= pkg_remove -PORTVERSION= 1.0 +PORTVERSION= 1.1 CATEGORIES= sysutils -MASTER_SITES= http://www.rr.iij4u.or.jp/~sada/scripts/ -DISTNAME= pkg_remove -EXTRACT_SUFX= .txt +MASTER_SITES= # none +DISTFILES= # none -MAINTAINER= nakaji@tutrp.tut.ac.jp +MAINTAINER= nakaji@jp.freebsd.org -EXTRACT_CMD= ${CP} -EXTRACT_BEFORE_ARGS= -EXTRACT_AFTER_ARGS= . -NO_WRKSUBDIR= yes NO_BUILD= yes +NO_WRKSUBDIR= yes + +SRC= ${.CURDIR}/src + +do-fetch: + @${DO_NADA} do-install: - ${INSTALL_SCRIPT} ${WRKDIR}/pkg_remove.txt ${PREFIX}/bin/pkg_remove + ${INSTALL_SCRIPT} ${SRC}/pkg_remove.txt ${PREFIX}/bin/pkg_remove .include <bsd.port.mk> diff --git a/ports-mgmt/pkg_remove/distinfo b/ports-mgmt/pkg_remove/distinfo deleted file mode 100644 index c81c3d4f24b6..000000000000 --- a/ports-mgmt/pkg_remove/distinfo +++ /dev/null @@ -1 +0,0 @@ -MD5 (pkg_remove.txt) = 7d83feadfe5c902c3afc1230eb5443d4 diff --git a/ports-mgmt/pkg_remove/src/pkg_remove.txt b/ports-mgmt/pkg_remove/src/pkg_remove.txt new file mode 100644 index 000000000000..f45f81c7bfff --- /dev/null +++ b/ports-mgmt/pkg_remove/src/pkg_remove.txt @@ -0,0 +1,34 @@ +#!/usr/bin/perl +# $Id: pkg_remove,v 1.3 1999/11/06 15:47:49 sada Exp $ +use Getopt::Std; +getopts('n'); +die("usage: x [-n] ALL | <package-name> [, <package-name> [..]]\n -n : only tell what will take place.\n") if (@ARGV < 1); +$pkg_dbdir = "/var/db/pkg"; +opendir(PKG_DBDIR, $pkg_dbdir); +while ($pkg = readdir(PKG_DBDIR)) { + next if $pkg =~ m/^\./; + $req_by{$pkg} = ''; + if (-f "$pkg_dbdir/$pkg/+REQUIRED_BY") { + open(REQ_B, "$pkg_dbdir/$pkg/+REQUIRED_BY"); + $req_by{$pkg} = join('', <REQ_B>); + } +} +while ($a = shift) { + while (($key, $val) = each(%req_by)) { + if ($a eq 'ALL' || $key =~ m/$a/) { + &remove_package($key); + } + } +} + +sub remove_package +{ + my ($pkg) = @_; + return if ($pkg_removed{$pkg}); + my @r = split(/\n/, $req_by{$pkg}); + my $p; + &remove_package($p) while $p = shift(@r); + print "remove: $pkg\n"; + system "pkg_delete $pkg" unless ($opt_n); + $pkg_removed{$pkg} = 'YES'; +} |