Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
#!/usr/bin/perl -w =head1 NAME Verify Your FreeBSD CD =head1 AUTHOR crazyinsomniac When The Levee Breaks =head1 LICENSE the same as that of perl itself (`perl -v') =head1 CHECKSUM.MD5 MD5 (compat21.aa) = c44af22b7cc1f19cccdaf7f49841f9de MD5 (compat21.ab) = d7f1ff74b9ff7b7d21eda01f90ee04e0 ... =cut use strict; use Getopt::Std; use Digest::MD5; use File::Find; $|= {on => 'nope'}; use vars qw/ %Opt %Dsp $Vv/; getopts('?hvd:', \%Opt); $Vv = 1 if exists $Opt{v}; # verbosity (errors and bad sums reported b +y default) if( exists $Opt{h} or exists $Opt{'?'} ) { goto FIRST_HELP } elsif( exists $Opt{d} ) { die " Where is your cd !!??\n" unless defined $Opt{d}; # missing arg, you ape chdir $Opt{d} or die "Dang, does the directory '$Opt{d}' really exist?\n"; die "hmm, can't read $Opt{d} for some reason \n" unless -d $Opt{d} and -r $Opt{d}; find(\&loop_it, $Opt{d}); goto THEEND } FIRST_HELP: { print<<"#||#"; Hello and welcome to Verify Your Debian Potatoe. This tool relies on the md5sum.txt file being in the root "directory" of said cd, and the sums there being correct. Usage: perl $0 [-?hvd] -? same as below -h prints out this message -v bees verbose (FAILED sums are reported by default) -d /path/to/cd/a/must #||# } sub loop_it { return unless $_ eq 'CHECKSUM.MD5'; # we only loop it if we got something to work with print "$File::Find::name\n----\n" if $Vv; open(FE,'CHECKSUM.MD5') or warn "Impossible!!! CHECKSUM.MD5! $!" a +nd return; my %MD5Sums = map { chomp; /^MD5 \(([^()]+)\) = ([a-zA-Z0-9]{32})$/ # damn!!! + i'm good } <FE>; close(FE); for my $file(sort keys %MD5Sums) { print "processing $file \n", if $Vv; open(MDFH,$file) or warn "shit, couldn't open $file, neext\n" +and next; binmode MDFH; # cause I don't know what kind of shit u runnin select undef, undef, undef, 0.45; # cause a lot of cdr(w)s cho +ke up my $md5 = Digest::MD5->new()->addfile(*MDFH)->hexdigest(); if ( $md5 ne $MD5Sums{$file} ) { printf "Oh CRIKEY!! -- it's to the bakery.\n%s\n%s **\n%s\ +n\n", $file, $MD5Sums{$file}, $md5 } elsif($Vv) { printf "G.oo00OOD!! -- no problem here\n%s\n%s **\n%s\n\n" +, $file, $MD5Sums{$file}, $md5 } } } THEEND: die q{ I'll have no place to stay. } __END__ >perl -ne"$\=qq,\n,;print for m/^MD5 \(([^()]+)\) = (.{32})$"' CHECKSU +M.MD5 >perl -ne"print map {scalar <>} 1..3 if /^Oh CRIKEY!!/" verify

In reply to Verify Your FreeBSD CD by crazyinsomniac

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others drinking their drinks and smoking their pipes about the Monastery: (6)
    As of 2014-09-19 22:27 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      How do you remember the number of days in each month?











      Results (149 votes), past polls