[32441] trunk/base/src/port1.0/portchecksum.tcl
jberry at macports.org
jberry at macports.org
Tue Jan 1 09:09:23 PST 2008
Revision: 32441
http://trac.macosforge.org/projects/macports/changeset/32441
Author: jberry at macports.org
Date: 2008-01-01 09:09:21 -0800 (Tue, 01 Jan 2008)
Log Message:
-----------
If checksum is mismatched, and in verbose mode, present a corrected pre-fabricated
checksum statement to make it easy to update a port.
Modified Paths:
--------------
trunk/base/src/port1.0/portchecksum.tcl
Modified: trunk/base/src/port1.0/portchecksum.tcl
===================================================================
--- trunk/base/src/port1.0/portchecksum.tcl 2008-01-01 15:03:00 UTC (rev 32440)
+++ trunk/base/src/port1.0/portchecksum.tcl 2008-01-01 17:09:21 UTC (rev 32441)
@@ -184,7 +184,7 @@
# Target main procedure. Verifies the checksums of all distfiles.
#
proc checksum_main {args} {
- global UI_PREFIX all_dist_files checksums_array portverbose checksum.skip
+ global UI_PREFIX all_dist_files checksum_types checksums_array portverbose checksum.skip
# If no files have been downloaded, there is nothing to checksum.
if {![info exists all_dist_files]} {
@@ -218,9 +218,9 @@
# check that there is at least one checksum for the distfile.
if {![info exists checksums_array($distfile)]} {
ui_error "[format [msgcat::mc "No checksum set for %s"] $distfile]"
- ui_info "[format [msgcat::mc "Distfile checksum: %s md5 %s"] $distfile [calc_md5 $fullpath]]"
- ui_info "[format [msgcat::mc "Distfile checksum: %s sha1 %s"] $distfile [calc_sha1 $fullpath]]"
- ui_info "[format [msgcat::mc "Distfile checksum: %s rmd160 %s"] $distfile [calc_rmd160 $fullpath]]"
+ foreach type $checksum_types {
+ ui_info "[format [msgcat::mc "Distfile checksum: %s $type %s"] $distfile [calc_$type $fullpath]]"
+ }
set fail yes
} else {
# retrieve the list of types/values from the array.
@@ -241,6 +241,7 @@
}
}
}
+
}
} else {
# Something went wrong with the syntax.
@@ -248,6 +249,22 @@
}
if {[tbool fail]} {
+
+ # Show the desired checksum line for easy cut-paste
+ set sums ""
+ foreach distfile $all_dist_files {
+ if {[llength $all_dist_files] > 1} {
+ lappend sums $distfile
+ }
+
+ set fullpath [file join $distpath $distfile]
+ foreach type $checksum_types {
+ lappend sums [format "%-8s%s" $type [calc_$type $fullpath]]
+ }
+ }
+ ui_info "The correct checksum line may be:"
+ ui_info [format "%-20s%s" "checksums" [join $sums [format " \\\n%-20s" ""]]]
+
return -code error "[msgcat::mc "Unable to verify file checksums"]"
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20080101/9c3306f3/attachment.html
More information about the macports-changes
mailing list