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