summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorespie <espie@openbsd.org>2013-12-23 16:50:29 +0000
committerespie <espie@openbsd.org>2013-12-23 16:50:29 +0000
commit3b15eb691c73f0ea5a937969fe2021765aea770c (patch)
tree1faf869caa130acd9e6b9acafbb06009bbc4314c
parentget rid of "copy_long", we don't really need to recheck names while copying (diff)
downloadwireguard-openbsd-3b15eb691c73f0ea5a937969fe2021765aea770c.tar.xz
wireguard-openbsd-3b15eb691c73f0ea5a937969fe2021765aea770c.zip
move ntogo code, so it can be used while copying packages in pkg_create.
add the few lines necessary for that to work.
-rw-r--r--usr.sbin/pkg_add/OpenBSD/AddCreateDelete.pm18
-rw-r--r--usr.sbin/pkg_add/OpenBSD/AddDelete.pm18
-rw-r--r--usr.sbin/pkg_add/OpenBSD/PkgCreate.pm19
3 files changed, 34 insertions, 21 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/AddCreateDelete.pm b/usr.sbin/pkg_add/OpenBSD/AddCreateDelete.pm
index 2443aa0f71d..475a71ec2d0 100644
--- a/usr.sbin/pkg_add/OpenBSD/AddCreateDelete.pm
+++ b/usr.sbin/pkg_add/OpenBSD/AddCreateDelete.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: AddCreateDelete.pm,v 1.16 2012/05/01 10:18:13 espie Exp $
+# $OpenBSD: AddCreateDelete.pm,v 1.17 2013/12/23 16:50:29 espie Exp $
#
# Copyright (c) 2007-2010 Marc Espie <espie@openbsd.org>
#
@@ -90,6 +90,22 @@ sub check_dir
}
}
+sub ntogo
+{
+ my ($self, $offset) = @_;
+
+ return $self->{wantntogo} ?
+ $self->progress->ntogo($self, $offset) :
+ $self->f("ok");
+}
+
+sub ntogo_string
+{
+ my ($self, $offset) = @_;
+
+ return $self->todo($offset // 0);
+}
+
package OpenBSD::AddCreateDelete;
use OpenBSD::Error;
diff --git a/usr.sbin/pkg_add/OpenBSD/AddDelete.pm b/usr.sbin/pkg_add/OpenBSD/AddDelete.pm
index 703c8d1f75e..23d79aa3773 100644
--- a/usr.sbin/pkg_add/OpenBSD/AddDelete.pm
+++ b/usr.sbin/pkg_add/OpenBSD/AddDelete.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: AddDelete.pm,v 1.55 2013/12/08 12:14:41 espie Exp $
+# $OpenBSD: AddDelete.pm,v 1.56 2013/12/23 16:50:29 espie Exp $
#
# Copyright (c) 2007-2010 Marc Espie <espie@openbsd.org>
#
@@ -217,28 +217,12 @@ sub syslog
Sys::Syslog::syslog('info', $self->f(@_));
}
-sub ntogo
-{
- my ($self, $offset) = @_;
-
- return $self->{wantntogo} ?
- $self->progress->ntogo($self, $offset) :
- $self->f("ok");
-}
-
sub todo
{
my ($state, $offset) = @_;
return $state->tracker->sets_todo($offset);
}
-sub ntogo_string
-{
- my ($self, $offset) = @_;
-
- return $self->todo($offset // 0);
-}
-
# one-level dependencies tree, for nicer printouts
sub build_deptree
{
diff --git a/usr.sbin/pkg_add/OpenBSD/PkgCreate.pm b/usr.sbin/pkg_add/OpenBSD/PkgCreate.pm
index 2c00f34ed06..765a8952387 100644
--- a/usr.sbin/pkg_add/OpenBSD/PkgCreate.pm
+++ b/usr.sbin/pkg_add/OpenBSD/PkgCreate.pm
@@ -1,6 +1,6 @@
#! /usr/bin/perl
# ex:ts=8 sw=4:
-# $OpenBSD: PkgCreate.pm,v 1.71 2013/12/23 16:34:51 espie Exp $
+# $OpenBSD: PkgCreate.pm,v 1.72 2013/12/23 16:50:29 espie Exp $
#
# Copyright (c) 2003-2010 Marc Espie <espie@openbsd.org>
#
@@ -65,6 +65,12 @@ sub set_status
}
}
+sub todo
+{
+ my ($self, $offset) = @_;
+ return sprintf("%u/%u", $self->{done}-$offset, $self->{total});
+}
+
sub end_status
{
my $self = shift;
@@ -1063,7 +1069,8 @@ sub sign_existing_package
unlink($plist->pkgname.".tgz") if $state->{output};
rename($tmp, $output.'/'.$plist->pkgname.".tgz") or
$state->fatal("Can't create final signed package: #1", $!);
- $state->end_status;
+ $state->{done}++;
+ $state->progress->next($state->ntogo);
}
sub sign_existing_pkgname
@@ -1081,7 +1088,10 @@ sub sign_existing_repository
my ($self, $state, $source, $cert, $privkey) = @_;
require OpenBSD::PackageRepository;
my $repo = OpenBSD::PackageRepository->new($source, $state);
- for my $name (@{$repo->list}) {
+ my @list = @{$repo->list};
+ $state->{total} = scalar @list;
+ $state->{done} = 0;
+ for my $name (@list) {
my $pkg = $repo->find($name);
$self->sign_existing_package($state, $pkg, $cert, $privkey);
}
@@ -1363,10 +1373,13 @@ sub parse_and_run
if ($state->not) {
$state->fatal("can't pretend to sign existing packages");
}
+ $state->{wantntogo} = $state->config->istrue("ntogo");
if (defined $state->{source}) {
$self->sign_existing_repository($state,
$state->{source}, $cert, $privkey);
}
+ $state->{total} = scalar @ARGV;
+ $state->{done} = 0;
for my $pkgname (@ARGV) {
$self->sign_existing_pkgname($state,
$pkgname, $cert, $privkey);