CPAN-UPLOAD(1) User Contributed Perl Documentation CPAN-UPLOAD(1)NAMEcpan-upload - upload one or more files to CPAN, using PAUSE
SYNOPSIScpan-upload [OPTIONS] file1 .. fileN
DESCRIPTIONcpan-upload is a script which automates the process of uploading a file
to CPAN using PAUSE, the Perl Authors Upload Server. For example, to
upload a recent version of the Net::Dict module I ran:
% cpan-upload-verbose Net-Dict-1.07.tar.gz
If everything went OK, you'll get two mail messages from the PAUSE
monitor: one to acknowledge the upload, and one to let you know if your
upload made it through to CPAN.
Given one or more files to upload, cpan-upload carries out the
following two steps:
· FTP the file or files to the PAUSE ftp server, putting them in the
incoming directory.
· Register the upload by POSTing to the PAUSE web server.
This is just one of the ways you can upload something to PAUSE. See
the PAUSE FAQ for details (referenced in SEE ALSO section below).
Before using cpan-upload you must register with PAUSE, to get a
username and password. If you are a regular uploader to PAUSE, you'll
probably want to create a ".pause" configuration file, as described in
"CONFIGURATION FILE" below. If not, you can just use the command-line
options, as described in "OPTIONS" below. If you don't provide your
password (via configuration file or command-line), then you will be
prompted for it. Echo'ing will be turned off while you type your
password. This behaviour can be suppressed with the -non_interactive
option, described below.
OPTIONS-user <string>
Your PAUSE username (which you previously registered with PAUSE).
-password <string>
The password for your PAUSE username.
-directory <string> | -dir <string>
A subdirectory in your CPAN area where the file should be uploaded
to.
-mailto <email>
Your email address, to include the HTTP request header. This is
also used as the password for the ftp upload to PAUSE.
-ftp_gateway <host>
Specifies the name of the host which has your ftp gateway.
-ftp_proxy <host>
Specifies the name of the host which has your ftp proxy, if you're
behind a firewall.
-http_proxy <URL>
Specifies the URL for a proxy to use when making HTTP requests.
-non_interactive | -ni
cpan-upload should not prompt for any missing information (eg
password), it should just warn or die, as appropriate.
-help
Displays a short help message with the OPTIONS section from the
cpan-upload documentation.
-doc
Display the full documentation for cpan-upload.
-verbose
Turns on verbose information as the script runs.
-debug
Turns on debugging information. Useful mainly for the developer, it
displays the HTTP request and response.
-version
Display the version number of the cpan-upload script.
CONFIGURATION FILE
You can provide the configuration information needed via a .pause file
in your home directory. If you upload files at all regularly you will
want to set up one of these.
user username
This is used to specify your PAUSE username. This just saves you
from typing it every time you run the script.
password password
This is used to specify your PAUSE password.
directory path
Specify a subdirectory in your CPAN area.
ftp_gateway HOST
Specifies the hostname of your ftp gateway used to get through a
firewall. For example:
ftp_gateway = ftp-gw
ftp_proxy HOST
Specifies the hostname of your ftp proxy used to get through a
firewall. For example:
ftp_proxy = ftp-proxy
http_proxy URL
The URL for the proxy to use when making HTTP requests to the PAUSE
web server. For example:
http_proxy = http://proxy/
mailto EMAIL
Specifies the email address which is passed in the header of the
HTTP request, and as the password for the anonymous ftp upload.
You must provide this.
non_interactive
Specifies that cpan-upload should never prompt the user (eg for
password), but should take a default action.
The following is a sample .pause file:
# example .pause for user neilb
# the user is your registered PAUSE username
user NEILB
password thisisnotmyrealpassword
mailto = neil@bowers.com
ftp_gateway = ftp-gw
http_proxy = http://proxy.cre.canon.co.uk/
non_interactive
Note that your .pause must not be readable by others, since it can
contain your PAUSE password. The cpan-upload script refuses to run if
your config file can be read by others.
POSSIBLE TODO ITEMS
Also, let me know if you ever have occasion to wish that the features
below had been implemented. I probably won't do them unless someone
would like to see them in.
I'd be happy to hear any more suggestions.
· As with the password, prompt for PAUSE username and email address
if not provided (by .pause file or on the command-line).
· Have a -noftp option or similar - ie don't try and ftp, just do the
post, assuming that the file is already in the ftp incoming
directory. We could be smart and check that it is. This would be
useful if a previous ftp upload succeeded but the POST operation
failed for some reason.
· Add configuration options for specifying the PAUSE ftp server name,
the incoming directory, and the URI we POST to. This would let you
deal with any changes without requiring a new release. These
aren't likely to change on any regular basis, so seem gratuitous.
SEE ALSO
www.cpan.org
The home page for the Comprehensive Perl Archive Network.
PAUSE
The Perl Authors Upload SErver. The PAUSE FAQ can be seen on CPAN:
http://www.cpan.org/modules/04pause.html
Net::FTP
Graham Barr's FTP client module, which is part of the libnet
distribution, available from:
http://www.cpan.org/modules/by-module/Net/
libwww-perl5
The LWP distribution which provides the modules used by this script
to talk to the PAUSE web server. You can get the latest version
from:
http://www.cpan.org/modules/by-module/LWP/
AppConfig::Std
The module used to handle command-line options and the
configuration file.
http://www.cpan.org/authors/id/NEILB/
This is actually a subclass of "AppConfig", which you'll also need.
http://www.cpan.org/authors/id/ABW/
Term::ReadKey
The module used to turn off echo'ing if we prompt the user for a
PAUSE password.
VERSION
$Revision: 2.2 $
SCRIPT CATEGORIES
CPAN
PREREQUISITES
AppConfig::Std Net::FTP HTTP::Request::Common LWP::UserAgent
HTTP::Status File::Basename Term::ReadKey
AUTHOR
Neil Bowers <neil@bowers.com>
COPYRIGHT
Copyright (c) 2001-2002 Neil Bowers.
Copyright (c) 1998-2001 Canon Research Centre Europe. All rights
reserved.
This script is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
perl v5.20.2 2002-07-02 CPAN-UPLOAD(1)