diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2003-10-16 17:43:35 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2003-10-16 17:43:35 +0000 |
commit | f590f7679f0eb9b733faf2b7287dc4c6f250cdac (patch) | |
tree | 0782149036d61c04d496ff0698bf4e86ff8cc633 /usr.sbin/pkg_add/OpenBSD/RequiredBy.pm | |
parent | b3fb36e241c10f88ff39c1fde2c2f0bfea706bea (diff) |
new import of my pkgtools, after a slight naming disagreement with the
Upper Management...
Diffstat (limited to 'usr.sbin/pkg_add/OpenBSD/RequiredBy.pm')
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/RequiredBy.pm | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/RequiredBy.pm b/usr.sbin/pkg_add/OpenBSD/RequiredBy.pm new file mode 100644 index 00000000000..0ac99cbd5f1 --- /dev/null +++ b/usr.sbin/pkg_add/OpenBSD/RequiredBy.pm @@ -0,0 +1,81 @@ +# ex:ts=8 sw=4: +# $OpenBSD: RequiredBy.pm,v 1.1 2003/10/16 17:43:34 espie Exp $ +# +# Copyright (c) 2003 Marc Espie. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE OPENBSD PROJECT AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBSD +# PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package OpenBSD::RequiredBy; +use strict; +use warnings; +use OpenBSD::PackageInfo; + +sub new +{ + my ($class, $pkgname) = @_; + my $f = installed_info($pkgname).REQUIRED_BY; + bless \$f, $class; +} + +sub list($) +{ + my $self = shift; + + my $l = []; + return $l unless -f $$self; + open(my $fh, '<', $$self) or + die "Problem opening required list: $$self\n"; + local $_; + while(<$fh>) { + chomp $_; + s/\s+$//; + next if /^$/; + push(@$l, $_); + } + close($fh); + return $l; +} + +sub delete +{ + my ($self, $pkgname) = @_; + my @lines = grep { $_ ne $pkgname } @{$self->list()}; + unlink($$self) or die "Can't erase $$self"; + if (@lines > 0) { + $self->add(@lines); + } +} + +sub add +{ + my ($self, @pkgnames) = @_; + open(my $fh, '>>', $$self) or + die "Can't add dependencies to $$self"; + print $fh join("\n", @pkgnames), "\n"; + close($fh); +} + +sub DESTROY +{ +} + +1; |