annotate export.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 use strict;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
4 use File::Copy;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
5 use File::Basename;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
6
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
7 # ARGS
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
8 my ($symlink, $dest, $logfile, @files)=@ARGV;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
9 die("Absolute path required\n") unless $dest =~ /^\//;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
10 die("Paths containing '..' are disallowed\n") if $dest =~ /\/\.\.\//;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
11 die("Only /home/*, /house/*, and /ifs/* paths are allowed\n") unless $dest =~ /^\/home/ or $dest =~ /^\/house/ or $dest =~ /^\/ifs/;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
12 die("Destination folder does not exist: $dest\n") unless -e $dest;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
13 die("Destination path is not a folder: $dest\n") unless -d $dest;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
14
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
15 # CP
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
16 open(OUT, ">$logfile") or die($!);
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
17 while (@files) {
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
18 my $file=shift @files or die("Source filename required\n");
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
19 my $name=shift @files or die("Destination filename required\n");
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
20 print OUT "$file -> $dest/$name\n";
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
21 if ($symlink) {
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
22 symlink($file, "$dest/$name");
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
23 } else {
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
24 copy($file, "$dest/$name");
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
25 }
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
26 }
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
27 close OUT;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
28 print "Exported ", scalar(@files), " to $dest\n";
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
29 exit;
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
30 __END__
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
31 Copyright (c) 2011 US DOE Joint Genome Institute.
4c225e57d44b Uploaded
pitagora
parents:
diff changeset
32 Use freely under the same license as Galaxy itself.