aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Blin <blino@mageia.org>2010-11-25 23:43:52 +0000
committerOlivier Blin <blino@mageia.org>2010-11-25 23:43:52 +0000
commit48aabd48f626c39d09de8eaa3e6ea2e799126344 (patch)
tree6584c98080d563b436bb6e921a5ca8db1c7bf511
parentcd080102c1ac69313d5e3824b655617f87119f36 (diff)
downloadiurt-48aabd48f626c39d09de8eaa3e6ea2e799126344.tar
iurt-48aabd48f626c39d09de8eaa3e6ea2e799126344.tar.gz
iurt-48aabd48f626c39d09de8eaa3e6ea2e799126344.tar.bz2
iurt-48aabd48f626c39d09de8eaa3e6ea2e799126344.tar.xz
iurt-48aabd48f626c39d09de8eaa3e6ea2e799126344.zip
factorize chroot rebuild code
-rw-r--r--lib/Iurt/Chroot.pm29
1 files changed, 10 insertions, 19 deletions
diff --git a/lib/Iurt/Chroot.pm b/lib/Iurt/Chroot.pm
index 5553439..329c02f 100644
--- a/lib/Iurt/Chroot.pm
+++ b/lib/Iurt/Chroot.pm
@@ -429,12 +429,6 @@ sub create_chroot {
if (!-f $chroot_tar) {
plog("rebuild chroot tarball");
$rebuild = 1;
- if (!build_chroot($run, $config, $tmp_chroot, $chroot_tar, $opt)) {
- plog('NOTIFY', "creating chroot failed.");
- $clean->();
- sudo($run, $config, '--rm', '-r', $chroot, $chroot_tar);
- return;
- }
} else {
link $chroot_tar, $tmp_tar or die "FATAL: could not initialize chroot ($!)\n";
@@ -451,14 +445,7 @@ sub create_chroot {
if (@removed_pkgs) {
plog('DEBUG', "changed packages: @removed_pkgs");
plog('NOTIFY', "Rebuilding chroot tarball");
-
$rebuild = 1;
- sudo($run, $config, '--rm', '-r', $tmp_chroot);
- if (!build_chroot($run, $config, $tmp_chroot, $chroot_tar, $opt)) {
- plog('NOTIFY', "creating chroot failed.");
- $clean->();
- return;
- }
} else {
plog('NOTIFY', "chroot tarball is already up-to-date");
link $tmp_tar, $chroot_tar;
@@ -466,15 +453,19 @@ sub create_chroot {
} else {
plog('DEBUG', "can't open $tmp_chroot/var/log/qa");
plog('ERR', "can't check chroot, recreating");
-
- if (!build_chroot($run, $config, $tmp_chroot, $chroot_tar, $opt)) {
- plog('NOTIFY', "creating chroot failed.");
- $clean->();
- return;
- }
+ $rebuild = 1;
}
}
+ if ($rebuild) {
+ if (!build_chroot($run, $config, $tmp_chroot, $chroot_tar, $opt)) {
+ plog('NOTIFY', "creating chroot failed.");
+ $clean->();
+ sudo($run, $config, '--rm', '-r', $chroot, $chroot_tar);
+ return;
+ }
+ }
+
if (!-d $chroot || $rebuild) {
plog('DEBUG', "recreate chroot $chroot");
plog('NOTIFY', "recreate chroot");