The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#! perl
use strict;
GetOptions('config=s' => \my $config_file, 'help:1' => \my $help, 'silent' => \my $silent);
pod2usage(-exitval => 0, -verbose => $help) if $help;
die "No files given to upload\n" if not @ARGV;
my $uploader = CPAN::Upload::Tiny->new_from_config_or_stdin($config_file);
for my $filename (@ARGV) {
$uploader->upload_file($filename);
print "Successfully uploaded $filename\n" if not $silent;
}
#PODNAME: cpan-upload-tiny
__END__
=pod
=encoding UTF-8
=head1 NAME
cpan-upload-tiny
=head1 VERSION
version 0.010
=head1 USAGE
usage: cpan-upload-tiny [options] file-to-upload-1 [ file-to-upload-2 ... ]
--config config file to use; defaults to ~/.pause
--help[=int] display a help message
--silent omit success message
=head1 CONFIGURATION
If you have a C<.pause> file in your home directory, it will be checked for a
username and password. It should look like this:
user EXAMPLE
password your-secret-password
You can GnuPG-encrypt this file if you wish, but you must install
L<Config::Identity> and configure your gpg-agent as L<Config::Identity>
currently doesn't prompt for a password at decryption time:
# Follow the prompts, setting your key as the "recipient"
# Use ^D once you've finished typing out your authentication information
gpg -ea > $HOME/.pause
# OR, encrypt a file you already created:
gpg -ea $HOME/.pause && mv $HOME/.pause{.asc,}
=head1 SEE ALSO
=over 4
=item * L<CPAN::Upload::Tiny|CPAN::Upload::Tiny>
This is used to implement cpan-upload-tiny
=item * L<Config::Identity|Config::Identity>
This is optionally used for secure storage of PAUSE credentials.
=back
=head1 AUTHOR
Leon Timmermans <leont@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Leon Timmermans.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut