| Filename | /usr/libdata/perl5/OpenBSD/PackageLocator.pm |
| Statements | Executed 28 statements in 1.01ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 5.41ms | 11.2ms | OpenBSD::PackageLocator::BEGIN@24 |
| 1 | 1 | 1 | 496µs | 539µs | OpenBSD::PackageLocator::BEGIN@23 |
| 1 | 1 | 1 | 52µs | 6.17ms | OpenBSD::PackageLocator::add_default |
| 1 | 1 | 1 | 44µs | 12.0s | OpenBSD::PackageLocator::match_locations |
| 1 | 1 | 1 | 24µs | 6.20ms | OpenBSD::PackageLocator::build_default_path |
| 1 | 1 | 1 | 18µs | 22µs | OpenBSD::State::BEGIN@18.8 |
| 1 | 1 | 1 | 14µs | 6.22ms | OpenBSD::PackageLocator::default_path |
| 1 | 1 | 1 | 10µs | 18µs | OpenBSD::State::BEGIN@19.9 |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageLocator::find |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageLocator::grabPlist |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageLocator::path_parse |
| 0 | 0 | 0 | 0s | 0s | OpenBSD::PackageLocator::printable_default_path |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | # ex:ts=8 sw=4: | ||||
| 2 | # $OpenBSD: PackageLocator.pm,v 1.110 2017/05/29 12:28:54 espie Exp $ | ||||
| 3 | # | ||||
| 4 | # Copyright (c) 2003-2010 Marc Espie <espie@openbsd.org> | ||||
| 5 | # | ||||
| 6 | # Permission to use, copy, modify, and distribute this software for any | ||||
| 7 | # purpose with or without fee is hereby granted, provided that the above | ||||
| 8 | # copyright notice and this permission notice appear in all copies. | ||||
| 9 | # | ||||
| 10 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||
| 11 | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||
| 12 | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||
| 13 | # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||
| 14 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||
| 15 | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||||
| 16 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||
| 17 | |||||
| 18 | 2 | 42µs | 2 | 26µs | # spent 22µs (18+4) within OpenBSD::State::BEGIN@18.8 which was called:
# once (18µs+4µs) by OpenBSD::State::locator at line 18 # spent 22µs making 1 call to OpenBSD::State::BEGIN@18.8
# spent 4µs making 1 call to strict::import |
| 19 | 2 | 39µs | 2 | 26µs | # spent 18µs (10+8) within OpenBSD::State::BEGIN@19.9 which was called:
# once (10µs+8µs) by OpenBSD::State::locator at line 19 # spent 18µs making 1 call to OpenBSD::State::BEGIN@19.9
# spent 8µs making 1 call to warnings::import |
| 20 | |||||
| 21 | package OpenBSD::PackageLocator; | ||||
| 22 | |||||
| 23 | 2 | 144µs | 1 | 539µs | # spent 539µs (496+43) within OpenBSD::PackageLocator::BEGIN@23 which was called:
# once (496µs+43µs) by OpenBSD::State::locator at line 23 # spent 539µs making 1 call to OpenBSD::PackageLocator::BEGIN@23 |
| 24 | 2 | 642µs | 1 | 11.2ms | # spent 11.2ms (5.41+5.76) within OpenBSD::PackageLocator::BEGIN@24 which was called:
# once (5.41ms+5.76ms) by OpenBSD::State::locator at line 24 # spent 11.2ms making 1 call to OpenBSD::PackageLocator::BEGIN@24 |
| 25 | |||||
| 26 | 1 | 700ns | my $default_path; | ||
| 27 | |||||
| 28 | sub add_default | ||||
| 29 | # spent 6.17ms (52µs+6.12) within OpenBSD::PackageLocator::add_default which was called:
# once (52µs+6.12ms) by OpenBSD::PackageLocator::build_default_path at line 61 | ||||
| 30 | 1 | 1µs | my ($self, $state, $p) = @_; | ||
| 31 | 1 | 700ns | my $w; | ||
| 32 | |||||
| 33 | 1 | 2µs | if (defined $ENV{TRUSTED_PKG_PATH}) { | ||
| 34 | my $v = $ENV{TRUSTED_PKG_PATH}; | ||||
| 35 | $v =~ s/^\:+//o; | ||||
| 36 | $v =~ s/\:+$//o; | ||||
| 37 | while (my $o = OpenBSD::PackageRepository->parse(\$v, $state)) { | ||||
| 38 | $o->{trusted} = 1; | ||||
| 39 | $p->add($o); | ||||
| 40 | } | ||||
| 41 | } else { | ||||
| 42 | 1 | 900ns | $w = "./:installpath"; | ||
| 43 | } | ||||
| 44 | 1 | 700ns | if (defined $ENV{PKG_PATH}) { | ||
| 45 | $w = $ENV{PKG_PATH}; | ||||
| 46 | } | ||||
| 47 | 1 | 11µs | if (defined $w) { | ||
| 48 | 1 | 10µs | 1 | 2µs | $w =~ s/^\:+//o; # spent 2µs making 1 call to OpenBSD::PackageLocator::CORE:subst |
| 49 | 1 | 6µs | 1 | 3µs | $w =~ s/\:+$//o; # spent 3µs making 1 call to OpenBSD::PackageLocator::CORE:subst |
| 50 | 1 | 27µs | 5 | 6.12ms | while (my $o = OpenBSD::PackageRepository->parse(\$w, $state)) { # spent 6.06ms making 3 calls to OpenBSD::PackageRepository::parse, avg 2.02ms/call
# spent 59µs making 2 calls to OpenBSD::PackageRepositoryList::add, avg 29µs/call |
| 51 | $p->add($o); | ||||
| 52 | } | ||||
| 53 | } | ||||
| 54 | } | ||||
| 55 | |||||
| 56 | sub build_default_path | ||||
| 57 | # spent 6.20ms (24µs+6.18) within OpenBSD::PackageLocator::build_default_path which was called:
# once (24µs+6.18ms) by OpenBSD::PackageLocator::default_path at line 67 | ||||
| 58 | 1 | 800ns | my ($self, $state) = @_; | ||
| 59 | 1 | 4µs | 1 | 6µs | $default_path = OpenBSD::PackageRepositoryList->new($state); # spent 6µs making 1 call to OpenBSD::PackageRepositoryList::new |
| 60 | |||||
| 61 | 1 | 15µs | 1 | 6.17ms | $self->add_default($state, $default_path); # spent 6.17ms making 1 call to OpenBSD::PackageLocator::add_default |
| 62 | } | ||||
| 63 | |||||
| 64 | sub default_path | ||||
| 65 | # spent 6.22ms (14µs+6.20) within OpenBSD::PackageLocator::default_path which was called:
# once (14µs+6.20ms) by OpenBSD::PackageLocator::match_locations at line 128 | ||||
| 66 | 1 | 900ns | my ($self, $state) = @_; | ||
| 67 | 1 | 3µs | 1 | 6.20ms | if (!defined $default_path) { # spent 6.20ms making 1 call to OpenBSD::PackageLocator::build_default_path |
| 68 | $self->build_default_path($state); | ||||
| 69 | } | ||||
| 70 | 1 | 16µs | return $default_path; | ||
| 71 | } | ||||
| 72 | |||||
| 73 | sub printable_default_path | ||||
| 74 | { | ||||
| 75 | my ($self, $state) = @_; | ||||
| 76 | |||||
| 77 | return join(':', $self->default_path($state)->do_something('url')); | ||||
| 78 | } | ||||
| 79 | |||||
| 80 | sub path_parse | ||||
| 81 | { | ||||
| 82 | my ($self, $pkgname, $state, $path) = (@_, './'); | ||||
| 83 | if ($pkgname =~ m/^(.*[\/\:])(.*)/) { | ||||
| 84 | ($pkgname, $path) = ($2, $1); | ||||
| 85 | } | ||||
| 86 | |||||
| 87 | return (OpenBSD::PackageRepository->new($path, $state), $pkgname); | ||||
| 88 | } | ||||
| 89 | |||||
| 90 | sub find | ||||
| 91 | { | ||||
| 92 | my ($self, $url, $state) = @_; | ||||
| 93 | |||||
| 94 | my $package; | ||||
| 95 | if ($url =~ m/[\/\:]/o) { | ||||
| 96 | my ($repository, $pkgname) = $self->path_parse($url, $state); | ||||
| 97 | $package = $repository->find($pkgname); | ||||
| 98 | if (defined $package) { | ||||
| 99 | $self->default_path($state)->add($repository); | ||||
| 100 | } | ||||
| 101 | } else { | ||||
| 102 | $package = $self->default_path($state)->find($url); | ||||
| 103 | } | ||||
| 104 | return $package; | ||||
| 105 | } | ||||
| 106 | |||||
| 107 | sub grabPlist | ||||
| 108 | { | ||||
| 109 | my ($self, $url, $code, $state) = @_; | ||||
| 110 | |||||
| 111 | my $plist; | ||||
| 112 | if ($url =~ m/[\/\:]/o) { | ||||
| 113 | my ($repository, $pkgname) = $self->path_parse($url, $state); | ||||
| 114 | $plist = $repository->grabPlist($pkgname, $code); | ||||
| 115 | if (defined $plist) { | ||||
| 116 | $self->default_path($state)->add($repository); | ||||
| 117 | } | ||||
| 118 | } else { | ||||
| 119 | $plist = $self->default_path($state)->grabPlist($url, $code); | ||||
| 120 | } | ||||
| 121 | return $plist; | ||||
| 122 | } | ||||
| 123 | |||||
| 124 | sub match_locations | ||||
| 125 | # spent 12.0s (44µs+12.0) within OpenBSD::PackageLocator::match_locations which was called:
# once (44µs+12.0s) by OpenBSD::PackageRepositoryFactory::match_locations at line 65 of OpenBSD/State.pm | ||||
| 126 | 1 | 2µs | my ($self, @search) = @_; | ||
| 127 | 1 | 12µs | my $state = pop @search; | ||
| 128 | 1 | 26µs | 2 | 12.0s | return $self->default_path($state)->match_locations(@search); # spent 12.0s making 1 call to OpenBSD::PackageRepositoryList::match_locations
# spent 6.22ms making 1 call to OpenBSD::PackageLocator::default_path |
| 129 | } | ||||
| 130 | |||||
| 131 | 1 | 4µs | 1; |