\n"; $p = 0; foreach $g (@got) { local ($rh = "READ$p", $wh = "WRITE$p"); pipe($rh, $wh); if (!fork()) { close($rh); local $h = $gotmap{$g}; # Check for any dependencies on this host foreach $m (@{$h->{'modules'}}) { foreach $d (split(/\s+/, $m->{'depends'})) { push(@{$ondeps{$d}}, $m); } } if ($ondeps{$in{'mod'}}) { print $wh &serialise_variable([ 0, &text('delete_edepends', join(", ", map { $_->{'desc'} } @{$ondeps{$in{'mod'}}})) ]); exit; } # Delete the module &remote_foreign_require($g->{'host'}, "usermin", "usermin-lib.pl") if ($s ne $g); local $desc = &remote_foreign_call($g->{'host'}, "usermin", "delete_usermin_module", $in{'mod'}); if ($del_error_msg) { print $wh &serialise_variable([ 0, $del_error_msg ]); } elsif ($desc) { print $wh &serialise_variable([ 1, $desc ]); } else { print $wh &serialise_variable([ 0, $text{'delete_egone'} ]); } # Re-request all modules and themes from the server local @newmods = grep { $_->{'dir'} ne $in{'mod'} } @{$h->{'modules'}}; local @newthemes = grep { $_->{'dir'} ne $in{'mod'} } @{$h->{'themes'}}; $h->{'modules'} = \@newmods; $h->{'themes'} = \@newthemes; &save_usermin_host($h); close($wh); exit; } close($wh); $p++; } # Read back the results $p = 0; foreach $g (@got) { local $rh = "READ$p"; local $line = <$rh>; local $rv = &unserialise_variable($line); close($rh); local $d = &server_name($g); if (!$rv->[0]) { print &text('delete_error', $d, $rv->[1]),"\n"; } else { print &text('delete_success', $d, $rv->[1]),"\n"; } $p++; } print "
$text{'delete_done'}
\n"; } else { # Ask if the user is sure.. $rroot = &remote_eval($s->{'host'}, "usermin", '&get_usermin_miniserv_config(\%m); $m{"root"}'); $sz = &remote_foreign_call($s->{'host'}, "usermin", "disk_usage_kb", "$rroot/$in{'mod'}"); print "
\n"; } else { print &text("delete_rusure2_$in{'type'}", "$info->{'desc'}", $sz, &server_name($s)),"
\n"; } print "