diff options
author | Olivier Blin <blino@mageia.org> | 2010-11-25 23:43:52 +0000 |
---|---|---|
committer | Olivier Blin <blino@mageia.org> | 2010-11-25 23:43:52 +0000 |
commit | 48aabd48f626c39d09de8eaa3e6ea2e799126344 (patch) | |
tree | 6584c98080d563b436bb6e921a5ca8db1c7bf511 /lib | |
parent | cd080102c1ac69313d5e3824b655617f87119f36 (diff) | |
download | iurt-48aabd48f626c39d09de8eaa3e6ea2e799126344.tar iurt-48aabd48f626c39d09de8eaa3e6ea2e799126344.tar.gz iurt-48aabd48f626c39d09de8eaa3e6ea2e799126344.tar.bz2 iurt-48aabd48f626c39d09de8eaa3e6ea2e799126344.tar.xz iurt-48aabd48f626c39d09de8eaa3e6ea2e799126344.zip |
factorize chroot rebuild code
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Iurt/Chroot.pm | 29 |
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"); |