summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl0/bin/cpansign
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl0/bin/cpansign')
-rwxr-xr-xMaster/tlpkg/tlperl0/bin/cpansign95
1 files changed, 95 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl0/bin/cpansign b/Master/tlpkg/tlperl0/bin/cpansign
new file mode 100755
index 00000000000..64fb87ed8f2
--- /dev/null
+++ b/Master/tlpkg/tlperl0/bin/cpansign
@@ -0,0 +1,95 @@
+#!/usr/bin/perl
+
+$VERSION = '0.06';
+
+=head1 NAME
+
+cpansign - CPAN signature management utility
+
+=head1 SYNOPSIS
+
+ % cpansign # verify an existing SIGNATURE, or
+ # make a new one if none exists
+
+ % cpansign file.par # verify or sign a PAR file
+
+ % cpansign sign # make signature; overwrites existing one
+ % cpansign -s # same thing
+
+ % cpansign verify # verify a signature
+ % cpansign -v # same thing
+ % cpansign -v --skip # ignore files in MANIFEST.SKIP
+
+ % cpansign help # display this documentation
+ % cpansign -h # same thing
+
+=head1 DESCRIPTION
+
+This utility lets you create and verify SIGNATURE files.
+
+=cut
+
+use strict;
+use Module::Signature;
+
+$Module::Signature::Verbose = 1;
+
+my %cmd = (
+ s => 'sign',
+ v => 'verify',
+ h => 'help',
+);
+
+my $op = $ARGV[0]; $op =~ s/^--?// if defined $op;
+my $dwim;
+if (!$op or $op eq 'skip' or -e $op) {
+ $op = (-e 'SIGNATURE' ? 'verify' : 'sign');
+ $dwim = 1;
+}
+
+my $cmd = $cmd{substr($op, 0, 1)};
+(system("perldoc $0"), exit) if $cmd eq 'help';
+my @args;
+push @args, (overwrite => '1') if $cmd eq 'sign';
+push @args, (skip => '0') unless grep /^-?-?skip/, @ARGV;
+
+if (my $sub = Module::Signature->can($cmd)) {
+ if (@ARGV and -e $ARGV[-1]) {
+ require PAR::Dist;
+ PAR::Dist::_verify_or_sign(
+ dist => $ARGV[-1],
+ $dwim ? () : (action => $cmd, @args)
+ );
+ }
+ else {
+ #if ($cmd eq 'sign') {
+ # exit unless Module::Signature::verify();
+ #}
+ exit($sub->(@args));
+ }
+}
+else {
+ die "Unknown command: '$op'.\n".
+ "Available actions: " . (join(', ', sort values %cmd)) . ".\n";
+}
+
+exit;
+
+=head1 SEE ALSO
+
+L<Module::Signature>
+
+=head1 AUTHORS
+
+Audrey Tang E<lt>autrijus@autrijus.orgE<gt>
+
+=head1 COPYRIGHT
+
+Copyright 2002, 2003, 2006 by Audrey Tang.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See L<http://www.perl.com/perl/misc/Artistic.html>
+
+=cut