mirror of
https://github.com/webmin/webmin.git
synced 2025-07-20 16:48:46 +00:00
49 lines
1.4 KiB
Perl
Executable File
49 lines
1.4 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
|
|
require './filemin-lib.pl';
|
|
use Cwd 'abs_path';
|
|
&ReadParse();
|
|
|
|
get_paths();
|
|
|
|
open(my $fh, "<".&get_paste_buffer_file()) or die "Error: $!";
|
|
my @arr = <$fh>;
|
|
close($fh);
|
|
my $act = $arr[0];
|
|
my $dir = $arr[1];
|
|
chomp($act);
|
|
chomp($dir);
|
|
$from = abs_path($base.$dir);
|
|
if ($cwd eq $from) {
|
|
print_errors($text{'error_pasting_nonsence'});
|
|
} else {
|
|
my @errors;
|
|
for(my $i = 2;$i <= scalar(@arr)-1;$i++) {
|
|
chomp($arr[$i]);
|
|
if ($act eq "copy") {
|
|
if (-e "$cwd/$arr[$i]") {
|
|
push @errors, "$cwd/$arr[$i] $text{'error_exists'}";
|
|
} else {
|
|
system("cp -r ".quotemeta("$from/$arr[$i]").
|
|
" ".quotemeta($cwd)) == 0 or push @errors, "$from/$arr[$i] $text{'error_copy'} $!";
|
|
}
|
|
}
|
|
elsif ($act eq "cut") {
|
|
if (!can_move("$from/$arr[$i]", $cwd, $from)) {
|
|
push @errors, "$from/$arr[$i] - $text{'error_move'}";
|
|
}
|
|
elsif (-e "$cwd/$arr[$i]") {
|
|
push @errors, "$cwd/$arr[$i] $text{'error_exists'}";
|
|
} else {
|
|
system("mv ".quotemeta("$from/$arr[$i]").
|
|
" ".quotemeta($cwd)) == 0 or push @errors, "$from/$arr[$i] $text{'error_cut'} $!";
|
|
}
|
|
}
|
|
}
|
|
if (scalar(@errors) > 0) {
|
|
print_errors(@errors);
|
|
} else {
|
|
&redirect("index.cgi?path=".&urlize($path));
|
|
}
|
|
}
|