summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2005-01-16 11:16:24 +0000
committerMarc Espie <espie@cvs.openbsd.org>2005-01-16 11:16:24 +0000
commitcb414a18f7738fc2d2a41903019f370ee2e3e66a (patch)
treed798f51b8c47fb6d4042307076b6af44f49699dc
parent75a02b58e8e5c9ebf697c1d103102247f359c4dd (diff)
allow locking of database in quiet mode, where we don't display any
message. Display the lock message on stderr anyways, so that we don't disturb normal displays. postpone locking after we know about -q in pkg_info's case. Display command line if pkg_create fails, so that we can see what arguments it found in bsd.port.mk.
-rw-r--r--usr.sbin/pkg_add/OpenBSD/PackageInfo.pm9
-rw-r--r--usr.sbin/pkg_add/pkg_create4
-rw-r--r--usr.sbin/pkg_add/pkg_info8
3 files changed, 13 insertions, 8 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm b/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm
index 49e7072dedd..f0873940f5a 100644
--- a/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm
+++ b/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: PackageInfo.pm,v 1.16 2005/01/14 02:25:12 espie Exp $
+# $OpenBSD: PackageInfo.pm,v 1.17 2005/01/16 11:16:23 espie Exp $
#
# Copyright (c) 2003-2004 Marc Espie <espie@openbsd.org>
#
@@ -170,15 +170,16 @@ sub is_info_name($)
my $dlock;
-sub lock_db($)
+sub lock_db($;$)
{
- my $shared = shift;
+ my ($shared, $quiet) = @_;
my $mode = $shared ? LOCK_SH : LOCK_EX;
open($dlock, '<', $pkg_db) or return;
if (flock($dlock, $mode | LOCK_NB)) {
return;
}
- print "Package database already locked... awaiting release\n";
+ print STDERR "Package database already locked... awaiting release\n"
+ unless $quiet;
while (!flock($dlock, $mode)) {
}
return;
diff --git a/usr.sbin/pkg_add/pkg_create b/usr.sbin/pkg_add/pkg_create
index 46c46c3b465..1e5456786ac 100644
--- a/usr.sbin/pkg_add/pkg_create
+++ b/usr.sbin/pkg_add/pkg_create
@@ -1,6 +1,6 @@
#! /usr/bin/perl
# ex:ts=8 sw=4:
-# $OpenBSD: pkg_create,v 1.31 2004/12/12 11:26:16 espie Exp $
+# $OpenBSD: pkg_create,v 1.32 2005/01/16 11:16:23 espie Exp $
#
# Copyright (c) 2003-2004 Marc Espie <espie@openbsd.org>
#
@@ -309,7 +309,7 @@ try {
if (@ARGV == 0) {
$regen_package = 1;
} elsif (@ARGV != 1) {
- Usage "Exactly one single package name is required";
+ Usage "Exactly one single package name is required: ", join(' ', @ARGV);
}
try {
diff --git a/usr.sbin/pkg_add/pkg_info b/usr.sbin/pkg_add/pkg_info
index 3ca83cb2f60..a9bbd4779cf 100644
--- a/usr.sbin/pkg_add/pkg_info
+++ b/usr.sbin/pkg_add/pkg_info
@@ -1,6 +1,6 @@
#! /usr/bin/perl
# ex:ts=8 sw=4:
-# $OpenBSD: pkg_info,v 1.27 2005/01/14 02:25:12 espie Exp $
+# $OpenBSD: pkg_info,v 1.28 2005/01/16 11:16:23 espie Exp $
#
# Copyright (c) 2003-2004 Marc Espie <espie@openbsd.org>
#
@@ -247,13 +247,15 @@ sub print_info
set_usage('pkg_info [-cDdfIiKkLMpqRrsUv] [-E fname] [-e pkgname] [-l str] pkgname...', 'pkg_info [-Aa flags]');
-lock_db(1);
+my $locked;
try {
getopts('cDdfhIikKLmpqRrsvhe:E:MU:l:aA',
{'e' =>
sub {
my $pat = shift;
my @list;
+ lock_db(1, $opt_q);
+ $locked = 1;
if ($pat =~ m/\//) {
@list = find_by_path($pat);
} else {
@@ -278,6 +280,8 @@ try {
Usage($_);
};
+lock_db(1, $opt_q) unless $locked;
+
if ($opt_D) {
$opt_M = 1;
}