# HG changeset patch # User Heiko Schlittermann # Date 1264980460 -3600 # Node ID 06bffc9d8977b5e3b664ff764aac997d58802422 # Parent 38af4add892ae5c4dafcfffbfda43c900efe2473 added shell escape and removed the debug comments diff -r 38af4add892a -r 06bffc9d8977 is --- a/is Mon Feb 01 00:07:30 2010 +0100 +++ b/is Mon Feb 01 00:27:40 2010 +0100 @@ -45,15 +45,14 @@ do "$src/info/devices"; my %devices = %$VAR1; - #SI::ptable::restore(%devices); - #SI::ptable::mkfs(%devices); - #SI::lvm::pvcreate(%devices); - #SI::lvm::vgcfgrestore("$src/lvm/vg.*", %devices); - #SI::lvm::mkfs(%devices); - #SI::dumper::restore("$src/dump/*", %devices); + SI::ptable::restore(%devices); + SI::ptable::mkfs(%devices); + SI::lvm::pvcreate(%devices); + SI::lvm::vgcfgrestore("$src/lvm/vg.*", %devices); + SI::lvm::mkfs(%devices); + SI::dumper::restore("$src/dump/*", %devices); SI::grub::restore(%devices); - exit; die Dumper \%devices; diff -r 38af4add892a -r 06bffc9d8977 lib/SI/dumper.pm --- a/lib/SI/dumper.pm Mon Feb 01 00:07:30 2010 +0100 +++ b/lib/SI/dumper.pm Mon Feb 01 00:27:40 2010 +0100 @@ -31,7 +31,7 @@ my @dumps = glob(shift); my $devs = shift; - my $tmpdir = tempdir (CLEANUP => 1); + my $tmpdir = tempdir (CLEANUP => 0); foreach my $dump (@dumps) { # suppose it's gzipped @@ -48,15 +48,20 @@ verbose("restore $dump -> $dev : $fs\n"); run("mount -t $fs $dev $tmpdir"); - my $pid = fork or do { - open(STDIN, $dump) or die "Can't open $dump as STDIN: $!\n"; - chdir $tmpdir or die "Can't chdir to $tmpdir: $!\n"; - exec restore => "-orf-"; - die "Can't exec restore: $!\n"; + + eval { + my $pid = fork or do { + open(STDIN, $dump) or die "Can't open $dump as STDIN: $!\n"; + chdir $tmpdir or die "Can't chdir to $tmpdir: $!\n"; + exec restore => "-orf-"; + die "Can't exec restore: $!\n"; + }; + waitpid($pid, 0); }; - waitpid($pid, 0); run("umount $tmpdir"); + die $@ if $@; } + rmdir($tmpdir); } diff -r 38af4add892a -r 06bffc9d8977 lib/SI/grub.pm --- a/lib/SI/grub.pm Mon Feb 01 00:07:30 2010 +0100 +++ b/lib/SI/grub.pm Mon Feb 01 00:27:40 2010 +0100 @@ -58,7 +58,8 @@ run("chroot $tmpdir grub-mkdevicemap"); run("chroot $tmpdir /usr/sbin/grub-install '(hd0)'"); - #system("/bin/bash --login"); + system("/bin/bash --login") + if $ENV{_SHELL}; }; if ($@) { warn "** EVAL: $@\n";