diff options
author | 2018-06-22 21:16:01 +0000 | |
---|---|---|
committer | 2018-06-22 21:16:01 +0000 | |
commit | b4e0ee5dd57f4dd035b984fafec411f8511530b4 (patch) | |
tree | 128f1fd40295626bebdc03e1b0b422c1bf0d3bc6 | |
parent | Move up the setting of pcb_tf, refreshcreds(), and stack check so that (diff) | |
download | wireguard-openbsd-b4e0ee5dd57f4dd035b984fafec411f8511530b4.tar.xz wireguard-openbsd-b4e0ee5dd57f4dd035b984fafec411f8511530b4.zip |
as discussed with aja@, some commands must be run once for every distinct
path :/
Not 100% happy with it, but easy enough to do
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/PackingElement.pm | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/PackingElement.pm b/usr.sbin/pkg_add/OpenBSD/PackingElement.pm index bee8158aa0b..3c2221697f3 100644 --- a/usr.sbin/pkg_add/OpenBSD/PackingElement.pm +++ b/usr.sbin/pkg_add/OpenBSD/PackingElement.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: PackingElement.pm,v 1.255 2018/06/22 15:01:07 espie Exp $ +# $OpenBSD: PackingElement.pm,v 1.256 2018/06/22 21:16:01 espie Exp $ # # Copyright (c) 2003-2014 Marc Espie <espie@openbsd.org> # @@ -1325,13 +1325,12 @@ sub destate sub run { - my ($self, $state) = @_; + my ($self, $state, $v) = @_; + $v //= $self->{expanded}; $state->ldconfig->ensure; - $state->say("#1 #2", $self->keyword, $self->{expanded}) - if $state->verbose >= 2; - $state->log->system(OpenBSD::Paths->sh, '-c', $self->{expanded}) - unless $state->{not}; + $state->say("#1 #2", $self->keyword, $v) if $state->verbose >= 2; + $state->log->system(OpenBSD::Paths->sh, '-c', $v) unless $state->{not}; } # so tags are going to get triggered by packages we depend on. @@ -1442,7 +1441,15 @@ sub run_tag my $l = join(' ', keys %{$self->{list}}); $self->{expanded} =~ s/\%l/$l/g; } - $self->run($state); + if ($self->{expanded} =~ m/\%u/) { + for my $p (keys %{$self->{list}}) { + my $v = $self->{expanded}; + $v =~ s/\%u/$p/g; + $self->run($state, $v); + } + } else { + $self->run($state); + } } package OpenBSD::PackingElement::Exec; |