1package FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Delete; 2 3use strict; 4use warnings; 5 6use File::Path; 7use UNIVERSAL::require; 8 9use English qw(-no_match_vars); 10 11sub do { 12 my ($params, $logger) = @_; 13 14 my $msg = []; 15 my $status = 1; 16 17 foreach my $loc (@{$params->{list}}) { 18 19 my $loc_local = $loc; 20 21 if ($OSNAME eq 'MSWin32') { 22 FusionInventory::Agent::Tools::Win32->require; 23 my $localCodepage = FusionInventory::Agent::Tools::Win32::getLocalCodepage(); 24 if (Encode::is_utf8($loc)) { 25 $loc_local = encode($localCodepage, $loc); 26 } 27 } 28 29 File::Path::remove_tree($loc_local); 30 $status = 0 if -e $loc; 31 my $m = "Failed to delete $loc"; 32 push @$msg, $m; 33 $logger->debug($m); 34 } 35 return { 36 status => $status, 37 msg => $msg, 38 }; 39} 40 411; 42