0x1949 Team - FAZEMRX - MANAGER
Edit File: cpansign
#!/usr/bin/perl $VERSION = '0.06'; =encoding utf8 =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 => '1') if 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 LICENSE This work is under the B<CC0 1.0 Universal> license. To the extent possible under law, 唐鳳 has waived all copyright and related or neighboring rights to Module-Signature. This work is published from Taiwan. L<http://creativecommons.org/publicdomain/zero/1.0> =cut