annotate link_path.pl @ 2:4c225e57d44b draft default tip

Uploaded
author pitagora
date Wed, 09 Jul 2014 05:23:25 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
1 #!/usr/bin/perl
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
2
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
3 # INTERNAL USE ONLY!
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
4 # THIS TOOLS IS WRITTEN BASED ON link_path.pl FROM US DOE Joint Genome Institute.
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
5 # 2012-02-10 Yamanaka
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
6
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
7 # THIS TOOL HAS BEEN DEPRECATED IN FAVOR OF THE galaxy_import.pl AND gcpd.pl METHOD
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
8 # WHICH DON'T REQUIRE SETTING METADATA MANUALLY FOR EACH FILE.
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
9
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
10 use strict;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
11 use File::Copy;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
12
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
13 # CONFIG
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
14 my @allowed_paths = ('/');
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
15
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
16 # ARGS
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
17 my ($src, $dest, $symlink)=@ARGV;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
18 die("Absolute path required\n") unless $src =~ /^\//;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
19 die("Paths containing '..' are disallowed\n") if $src =~ /\/\.\.\//;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
20 my $ok=0;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
21 foreach my $dir (@allowed_paths) {
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
22 my $re="^$dir";
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
23 $re =~ s/\//\\\//g;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
24 if ($src =~ /$re/) {
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
25 $ok=1;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
26 last;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
27 }
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
28 }
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
29 die("Not an allowed source path\n") unless $ok;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
30
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
31 # CP
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
32 unlink($dest);
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
33 if ($symlink) {
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
34 symlink($src, $dest);
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
35 } else {
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
36 copy($src,$dest);
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
37 }
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
38 exit;