diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2005-11-06 17:58:26 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2005-11-06 17:58:26 +0000 |
commit | fbf002bb889d88ceb65d10c9c0062410e278f3e9 (patch) | |
tree | 4d018454aa66af723acca0db3cd2dce5ccc4d836 /util/copy.pl | |
parent | 9135fddb0e7b66c4b1a2b82065f1ee4088840f4c (diff) |
Update from stable branch.
Diffstat (limited to 'util/copy.pl')
-rw-r--r-- | util/copy.pl | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/util/copy.pl b/util/copy.pl new file mode 100644 index 0000000000..73ac928ed2 --- /dev/null +++ b/util/copy.pl @@ -0,0 +1,58 @@ +#!/usr/local/bin/perl + +use Fcntl; + + +# copy.pl + +# Perl script 'copy' comment. On Windows the built in "copy" command also +# copies timestamps: this messes up Makefile dependencies. + +my $arg; + +foreach $arg (@ARGV) { + foreach (glob $arg) + { + push @filelist, $_; + } +} + +$fnum = @filelist; + +if ($fnum <= 1) + { + die "Need at least two filenames"; + } + +$dest = pop @filelist; + +if ($fnum > 2 && ! -d $dest) + { + die "Destination must be a directory"; + } + +foreach (@filelist) + { + if (-d $dest) + { + $dfile = $_; + $dfile =~ s|^.*[/\\]([^/\\]*)$|$1|; + $dfile = "$dest/$dfile"; + } + else + { + $dfile = $dest; + } + sysopen(IN, $_, O_RDONLY|O_BINARY) || die "Can't Open $_"; + sysopen(OUT, $dfile, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY) + || die "Can't Open $dfile"; + while (sysread IN, $buf, 10240) + { + syswrite(OUT, $buf, length($buf)); + } + close(IN); + close(OUT); + print "Copying: $_ to $dfile\n"; + } + + |