@rem = '--*-Perl-*-- @echo off if "%OS%" == "Windows_NT" goto WinNT perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 goto endofperl :WinNT perl -x -S "%0" %* if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl if %errorlevel% == 9009 echo You do not have Perl in your PATH. goto endofperl @rem '; #!perl -w #line 14 # $Id: lwp-mirror.PL,v 1.19 1999/09/15 19:42:19 gisle Exp $ # # Simple mirror utility using LWP =head1 NAME lwp-mirror - Simple mirror utility for WWW =head1 SYNOPSIS lwp-mirror [-v] [-t timeout] =head1 DESCRIPTION This program can be used to mirror a document from a WWW server. The document is only transfered if the remote copy is newer than the local copy. If the local copy is newer nothing happens. Use the C<-v> option to print the version number of this program. The timeout value specified with the C<-t> option. The timeout value is the time that the program will wait for response from the remote server before it fails. The default unit for the timeout value is seconds. You might append "m" or "h" to the timeout value to make it minutes or hours, repectively. Because this program is implemented using the LWP library, it only supports the protocols that LWP supports. =head1 SEE ALSO L, L =head1 AUTHOR Gisle Aas =cut use LWP::Simple qw(mirror is_success status_message $ua); use Getopt::Std; $progname = $0; $progname =~ s,.*/,,; # use basename only $progname =~ s/\.\w*$//; #strip extension if any $VERSION = sprintf("%d.%02d", q$Revision: 1.19 $ =~ /(\d+)\.(\d+)/); $opt_h = undef; # print usage $opt_v = undef; # print version $opt_t = undef; # timeout unless (getopts("hvt:")) { usage(); } if ($opt_v) { require LWP; my $DISTNAME = 'libwww-perl-' . LWP::Version(); die <<"EOT"; This is lwp-mirror version $VERSION ($DISTNAME) Copyright 1995-1999, Gisle Aas. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. EOT } $url = shift or usage(); $file = shift or usage(); usage() if $opt_h or @ARGV; if (defined $opt_t) { $opt_t =~ /^(\d+)([smh])?/; die "$progname: Illegal timeout value!\n" unless defined $1; $timeout = $1; $timeout *= 60 if ($2 eq "m"); $timeout *= 3600 if ($2 eq "h"); $ua->timeout($timeout); } $rc = mirror($url, $file); if ($rc == 304) { print STDERR "$progname: $file is up to date\n" } elsif (!is_success($rc)) { print STDERR "$progname: $rc ", status_message($rc), " ($url)\n"; exit 1; } exit; sub usage { die <<"EOT"; Usage: $progname [-options] -v print version number of program -t Set timeout value EOT } __END__ :endofperl