summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2005-08-25 10:07:31 +0000
committerPascal Rigaux <pixel@mandriva.com>2005-08-25 10:07:31 +0000
commit65b74104e773b7140a91775e7456dc12d64797ab (patch)
tree5eb692f7a3352a24085cb337ea2985564fa897ae
parentc59cc6576d077f8fae92d7330d5341b001c8de50 (diff)
downloaddrakx-65b74104e773b7140a91775e7456dc12d64797ab.tar
drakx-65b74104e773b7140a91775e7456dc12d64797ab.tar.gz
drakx-65b74104e773b7140a91775e7456dc12d64797ab.tar.bz2
drakx-65b74104e773b7140a91775e7456dc12d64797ab.tar.xz
drakx-65b74104e773b7140a91775e7456dc12d64797ab.zip
- allow to easy clean existing chroot
- more fuzzy detection of mounted loop (to "losetup -d" it) - better log message for loop
-rw-r--r--tools/drakx-in-chroot5
1 files changed, 3 insertions, 2 deletions
diff --git a/tools/drakx-in-chroot b/tools/drakx-in-chroot
index 91f9edd28..fe54207b7 100644
--- a/tools/drakx-in-chroot
+++ b/tools/drakx-in-chroot
@@ -29,6 +29,7 @@ if (-d $SLASH_LOCATION) {
umount_all() == 0 or die "$SLASH_LOCATION is busy\n";
sys("$sudo rm -rf $SLASH_LOCATION/var/lib/rpm $SLASH_LOCATION/dev/mapper");
rm_rf($SLASH_LOCATION);
+ rm_rf(glob("$dir/*")) if $ENV{CLEAN};
}
mkdir_p("$SLASH_LOCATION$_") foreach '/dev', '/dev/usb', '/etc', '/var', '/proc', $STAGE2_LOCATION_ROOTED, $IMAGE_LOCATION_ROOTED, $prefix_ROOTED;
@@ -79,7 +80,7 @@ sub find_free_loop() {
foreach (0..255) {
my $dev = "/dev/loop$_";
system("$sudo losetup $dev >/dev/null 2>&1") != 0 or next;
- warn "found $dev\n";
+ warn "found free loop $dev\n";
return $dev;
}
die "no free loop found";
@@ -114,7 +115,7 @@ sub umount_all() {
system_verbose "$sudo umount $dir 2>/dev/null";
next;
}
- my ($loop) = cat_('/proc/mounts') =~ m!^(/dev/loop\d+) \Q$dir\E !m;
+ my ($loop) = cat_('/proc/mounts') =~ m!^(/dev/loop\d+) .*\Q$dir\E !m;
system_verbose "$sudo umount $dir";
sys("$sudo losetup -d $loop") if $loop;
}