summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2008-02-26 21:56:48 +0000
committerPascal Rigaux <pixel@mandriva.com>2008-02-26 21:56:48 +0000
commit3adde6b3bb3104dd6e0329778826c0fc5eddd268 (patch)
treec04538af2e99ce44181edc111bae9e68d3ab63dd
parentf22ab11821badfa1f4f6108d325b5201c93bf840 (diff)
downloadurpmi-3adde6b3bb3104dd6e0329778826c0fc5eddd268.tar
urpmi-3adde6b3bb3104dd6e0329778826c0fc5eddd268.tar.gz
urpmi-3adde6b3bb3104dd6e0329778826c0fc5eddd268.tar.bz2
urpmi-3adde6b3bb3104dd6e0329778826c0fc5eddd268.tar.xz
urpmi-3adde6b3bb3104dd6e0329778826c0fc5eddd268.zip
create _expand_symlink() out of find_mntpoints()
-rw-r--r--urpm/sys.pm28
1 files changed, 17 insertions, 11 deletions
diff --git a/urpm/sys.pm b/urpm/sys.pm
index 295321bc..b6ef73be 100644
--- a/urpm/sys.pm
+++ b/urpm/sys.pm
@@ -71,23 +71,29 @@ sub find_mntpoints {
#- for simplification we refuse also any other device and stop here.
last;
} elsif (-l $pdir) {
- while (my $v = readlink $pdir) {
- if ($pdir =~ m|^/|) {
- $pdir = $v;
- } else {
- while ($v =~ s!^\.\./!!) {
- $pdir =~ s!/[^/]+/*$!!;
- }
- $pdir .= "/$v";
- }
- }
- unshift @paths, split '/', $pdir;
+ unshift @paths, split '/', _expand_symlink($pdir);
$pdir = '';
}
}
@mntpoints;
}
+sub _expand_symlink {
+ my ($pdir) = @_;
+
+ while (my $v = readlink $pdir) {
+ if ($pdir =~ m|^/|) {
+ $pdir = $v;
+ } else {
+ while ($v =~ s!^\.\./!!) {
+ $pdir =~ s!/[^/]+/*$!!;
+ }
+ $pdir .= "/$v";
+ }
+ }
+ $pdir;
+}
+
sub clean_rpmdb_shared_regions {
my ($prefix) = @_;
unlink glob("$prefix/var/lib/rpm/__db.*");