forked from Real-Gecko/Filemin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpaste.cgi
45 lines (41 loc) · 1.18 KB
/
paste.cgi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/perl
require './filemin-lib.pl';
use Cwd 'abs_path';
&ReadParse();
get_paths();
$tmpdir = "$remote_user_info[7]/.filemin";
open(my $fh, "< $tmpdir/.buffer") 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 {
©_source_dest("$from/$arr[$i]", $cwd) or push @errors, "$cwd/$arr[$i] $text{'error_copy'} $!";
}
}
elsif ($act eq "cut") {
if (-e "$cwd/$arr[$i]") {
push @errors, "$cwd/$arr[$i] $text{'error_exists'}";
} else {
&rename_file("$from/$arr[$i]", $cwd) or push @errors, "$cwd/$arr[$i] $text{'error_cut'} $!";
}
}
}
if (scalar(@errors) > 0) {
print_errors(@errors);
} else {
&redirect("index.cgi?path=$path");
}
}