Changeset 19


Ignore:
Timestamp:
Aug 1, 2002, 5:44:03 AM (18 years ago)
Author:
landonf (Landon Fuller)
Message:

Use regexp to bring in md5 checksum

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/base/Tcl/portchecksum.1.0.tcl

    r18 r19  
    1616proc portchecksum::md5 {file} {
    1717        global distpath
     18        set md5regex "^(MD5)\[ \]\\(($file)\\)\[ \]=\[ \](\[A-Za-z0-9\]+)\n$"
    1819        set pipe [open "|md5 ${file}" r]
    19         set output [read $pipe]\n
    20         if {[llength $output] != 4} {
    21                 # XXX clean this up, report errors better?
    22                 puts "md5sum failed"
     20        set line [read $pipe]
     21        if {[regexp $md5regex $line match type filename sum] == 1} {
     22                return $sum
     23        } else {
     24                # XXX Handle this error beter
     25                puts $line
     26                puts "md5sum failed!"
    2327                return -1
    2428        }
    25         return [lindex $output 3]
    2629}
    2730
    2831proc portchecksum::dmd5 {file} {
    2932        set fd [open [getval portchecksum::options md5file] r]
     33        set md5regex "^(MD5)\[ \]\\(($file)\\)\[ \]=\[ \](\[A-Za-z0-9\]+$)"
    3034        while {[gets $fd line] >= 0} {
    31                 if {[llength $line] != 4} {
    32                         # XXX clean this up
    33                         puts "failing checkmd5"
    34                 }
    35 
    36                 if {[lindex $line 1] == "($file)"} {
    37                         close $fd
    38                         return [lindex $line 3]
     35                if {[regexp $md5regex $line match type filename sum] == 1} {
     36                        if {$filename == $file} {
     37                                close $fd
     38                                return $sum
     39                        }
     40                } else {
     41                        # XXX Handle this error beter
     42                        puts "md5sum failed!"
     43                        return -1
    3944                }
    4045        }
     
    5863                set dchecksum [dmd5 $distfile]
    5964                if {$checksum == $dchecksum} {
     65                        puts "$dchecksum:$checksum"
    6066                        puts "Checksum OK for $distfile"
    6167                } else {
     68                        puts "$checksum:$dchecksum"
    6269                        puts "Checksum mismatch for $distfile"
    6370                        return -1
Note: See TracChangeset for help on using the changeset viewer.