[24273] trunk/base/src/package1.0/portunarchive.tcl

source_changes at macosforge.org source_changes at macosforge.org
Fri Apr 20 22:30:59 PDT 2007


Revision: 24273
          http://trac.macosforge.org/projects/macports/changeset/24273
Author:   pguyot at kallisys.net
Date:     2007-04-20 22:30:58 -0700 (Fri, 20 Apr 2007)

Log Message:
-----------
Fix unarchiving after command_exec API change.
Cleaning the code.

Modified Paths:
--------------
    trunk/base/src/package1.0/portunarchive.tcl

Modified: trunk/base/src/package1.0/portunarchive.tcl
===================================================================
--- trunk/base/src/package1.0/portunarchive.tcl	2007-04-21 02:24:10 UTC (rev 24272)
+++ trunk/base/src/package1.0/portunarchive.tcl	2007-04-21 05:30:58 UTC (rev 24273)
@@ -152,6 +152,7 @@
 	global unarchive.env unarchive.cmd
 	global unarchive.pre_args unarchive.args unarchive.post_args
 	global unarchive.type unarchive.path
+	global unarchive.pipe_cmd
 	global os.platform os.version env
 
 	# Define appropriate unarchive command and options
@@ -160,6 +161,7 @@
 	set unarchive.pre_args {}
 	set unarchive.args {}
 	set unarchive.post_args {}
+	set unarchive.pipe_cmd ""
 	switch -regex ${unarchive.type} {
 		cp(io|gz) {
 			set pax "pax"
@@ -176,7 +178,7 @@
 					set gzip "gzip"
 					if {[catch {set gzip [binaryInPath $gzip]} errmsg] == 0} {
 						ui_debug "Using $gzip"
-						set unarchive.env "$gzip -d -c ${unarchive.path} |"
+						set unarchive.pipe_cmd "$gzip -d -c ${unarchive.path} |"
 					} else {
 						ui_debug $errmsg
 						return -code error "No '$gzip' was found on this system!"
@@ -204,7 +206,7 @@
 					}
 					if {[catch {set gzip [binaryInPath $gzip]} errmsg] == 0} {
 						ui_debug "Using $gzip"
-						set unarchive.env "$gzip -d -c ${unarchive.path} |"
+						set unarchive.pipe_cmd "$gzip -d -c ${unarchive.path} |"
 					} else {
 						ui_debug $errmsg
 						return -code error "No '$gzip' was found on this system!"
@@ -256,7 +258,7 @@
 proc unarchive_main {args} {
 	global UI_PREFIX
 	global portname portversion portrevision portvariants
-	global unarchive.dir unarchive.file
+	global unarchive.dir unarchive.file unarchive.pipe_cmd
 
 	# Setup unarchive command
 	unarchive_command_setup
@@ -268,56 +270,15 @@
 
 	# Unpack the archive
 	ui_info "$UI_PREFIX [format [msgcat::mc "Extracting %s"] ${unarchive.file}]"
-	command_exec unarchive
-
-	return 0
-}
-
-proc unarchive_finish {args} {
-	global UI_PREFIX target_state_fd unarchive.file portname workpath destpath
-
-	# Reset state file with archive version
-    set statefile [file join $workpath .darwinports.${portname}.state]
-	file copy -force [file join $destpath "+STATE"] $statefile
-	exec touch $statefile
-
-    # Update the state from unpacked archive version
-    set target_state_fd [open_statefile]
-
-	# Archive unpacked, skip archive target
-	write_statefile target "com.apple.archive" $target_state_fd
-    
-	# Cleanup all control files when finished
-	set control_files [glob -nocomplain -types f [file join $destpath +*]]
-	foreach file $control_files {
-		ui_debug "Removing $file"
-		file delete -force $file
+	if {${unarchive.pipe_cmd} == ""} {
+		command_exec unarchive
+	} else {
+		command_exec unarchive "${unarchive.pipe_cmd} (" ")"
 	}
 
-	ui_info "$UI_PREFIX [format [msgcat::mc "Archive %s unpacked"] ${unarchive.file}]"
 	return 0
 }
 
-proc unarchive_main {args} {
-	global UI_PREFIX
-	global portname portversion portrevision portvariants
-	global unarchive.dir unarchive.file
-
-	# Setup unarchive command
-	unarchive_command_setup
-
-	# Create destination directory for unpacking
-	if {![file isdirectory ${unarchive.dir}]} {
-		file mkdir ${unarchive.dir}
-	}
-
-	# Unpack the archive
-	ui_info "$UI_PREFIX [format [msgcat::mc "Extracting %s"] ${unarchive.file}]"
-	command_exec unarchive
-
-	return 0
-}
-
 proc unarchive_finish {args} {
 	global UI_PREFIX target_state_fd unarchive.file portname workpath destpath
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20070420/2761b0ec/attachment.html


More information about the macports-changes mailing list