[66414] trunk/base/src
jmr at macports.org
jmr at macports.org
Sun Apr 11 23:06:05 PDT 2010
Revision: 66414
http://trac.macports.org/changeset/66414
Author: jmr at macports.org
Date: 2010-04-11 23:06:02 -0700 (Sun, 11 Apr 2010)
Log Message:
-----------
add --no-exec option that prevents running of stored pre/post procs for uninstall, deactivate and activate
Modified Paths:
--------------
trunk/base/src/port/port-help.tcl
trunk/base/src/port/port.tcl
trunk/base/src/registry2.0/portimage.tcl
trunk/base/src/registry2.0/portuninstall.tcl
Modified: trunk/base/src/port/port-help.tcl
===================================================================
--- trunk/base/src/port/port-help.tcl 2010-04-12 04:54:38 UTC (rev 66413)
+++ trunk/base/src/port/port-help.tcl 2010-04-12 06:06:02 UTC (rev 66414)
@@ -9,6 +9,8 @@
set porthelp(activate) {
Activate the given ports
+
+--no-exec Do not execute any stored pre- or post-activate procedures
}
set porthelp(archive) {
@@ -64,6 +66,8 @@
set porthelp(deactivate) {
Deactivates the given ports
+
+--no-exec Do not execute any stored pre- or post-deactivate procedures
}
set porthelp(dependents) {
@@ -310,6 +314,8 @@
set porthelp(uninstall) {
Uninstall the given ports
+
+--no-exec Do not execute any stored pre- or post-uninstall procedures
}
set porthelp(unload) $porthelp(load)
Modified: trunk/base/src/port/port.tcl
===================================================================
--- trunk/base/src/port/port.tcl 2010-04-12 04:54:38 UTC (rev 66413)
+++ trunk/base/src/port/port.tcl 2010-04-12 06:06:02 UTC (rev 66414)
@@ -2227,7 +2227,11 @@
}
foreachport $portlist {
set composite_version [composite_version $portversion [array get variations]]
- if {${macports::registry.format} == "receipt_sqlite" && ![catch {set ilist [registry::installed $portname $composite_version]}] && [llength $ilist] == 1} {
+ if {${macports::registry.format} == "receipt_sqlite"
+ && ![info exists options(ports_activate_no-exec)]
+ && ![catch {set ilist [registry::installed $portname $composite_version]}]
+ && [llength $ilist] == 1} {
+
set i [lindex $ilist 0]
set regref [registry::entry open $portname [lindex $i 1] [lindex $i 2] [lindex $i 3] [lindex $i 5]]
if {[registry::run_target $regref activate [array get options]]} {
@@ -2257,7 +2261,10 @@
}
foreachport $portlist {
set composite_version [composite_version $portversion [array get variations]]
- if {${macports::registry.format} == "receipt_sqlite" && ![catch {set ilist [registry::active $portname]}]} {
+ if {${macports::registry.format} == "receipt_sqlite"
+ && ![info exists options(ports_deactivate_no-exec)]
+ && ![catch {set ilist [registry::active $portname]}]} {
+
set i [lindex $ilist 0]
set iversion [lindex $i 1]
set irevision [lindex $i 2]
@@ -2790,7 +2797,11 @@
continue
}
set composite_version [composite_version $portversion [array get variations]]
- if {${macports::registry.format} == "receipt_sqlite" && ![catch {set ilist [registry::installed $portname $composite_version]}] && [llength $ilist] == 1} {
+ if {${macports::registry.format} == "receipt_sqlite"
+ && ![info exists options(ports_uninstall_no-exec)]
+ && ![catch {set ilist [registry::installed $portname $composite_version]}]
+ && [llength $ilist] == 1} {
+
set i [lindex $ilist 0]
set iactive [lindex $i 4]
set regref [registry::entry open $portname [lindex $i 1] [lindex $i 2] [lindex $i 3] [lindex $i 5]]
@@ -3824,7 +3835,9 @@
long_description maintainer maintainers name platform
platforms portdir regex revision variant variants version}
selfupdate {nosync}
- uninstall {follow-dependents follow-dependencies}
+ activate {no-exec}
+ deactivate {no-exec}
+ uninstall {follow-dependents follow-dependencies no-exec}
variants {index}
clean {all archive dist work logs}
mirror {new}
Modified: trunk/base/src/registry2.0/portimage.tcl
===================================================================
--- trunk/base/src/registry2.0/portimage.tcl 2010-04-12 04:54:38 UTC (rev 66413)
+++ trunk/base/src/registry2.0/portimage.tcl 2010-04-12 06:06:02 UTC (rev 66414)
@@ -66,6 +66,7 @@
variable force 0
variable use_reg2 0
+variable noexec 0
# Activate a "Port Image"
proc activate {name v optionslist} {
@@ -73,10 +74,14 @@
array set options $optionslist
variable force
variable use_reg2
+ variable noexec
if {[info exists options(ports_force)] && [string is true -strict $options(ports_force)] } {
set force 1
}
+ if {[info exists options(ports_activate_no-exec)]} {
+ set noexec $options(ports_activate_no-exec)
+ }
if {[string equal ${macports::registry.format} "receipt_sqlite"]} {
set use_reg2 1
if {![info exists registry_open]} {
@@ -115,7 +120,7 @@
}
}
foreach a $todeactivate {
- if {![registry::run_target $a deactivate [list ports_nodepcheck 1]]} {
+ if {$noexec || ![registry::run_target $a deactivate [list ports_nodepcheck 1]]} {
deactivate $name "[$a version]_[$a revision][$a variants]" [list ports_nodepcheck 1]
}
}
@@ -409,6 +414,7 @@
proc _activate_contents {port {imagefiles {}} {imagedir {}}} {
variable force
variable use_reg2
+ variable noexec
global macports::prefix
set files [list]
@@ -504,7 +510,7 @@
# deactivate ports replaced_by this one
foreach owner [array names todeactivate] {
- if {![registry::run_target $owner deactivate [list ports_nodepcheck 1]]} {
+ if {$noexec || ![registry::run_target $owner deactivate [list ports_nodepcheck 1]]} {
deactivate [$owner name] "" [list ports_nodepcheck 1]
}
}
@@ -543,9 +549,9 @@
}
# reactivate deactivated ports
foreach entry [array names todeactivate] {
- if {[$entry state] == "imaged" && ![registry::run_target $entry activate ""]} {
+ if {[$entry state] == "imaged" && ($noexec || ![registry::run_target $entry activate ""])} {
set pvers "[$entry version]_[$entry revision][$entry variants]"
- activate [$entry name] $pvers ""
+ activate [$entry name] $pvers [list ports_activate_no-exec $noexec]
}
}
throw
Modified: trunk/base/src/registry2.0/portuninstall.tcl
===================================================================
--- trunk/base/src/registry2.0/portuninstall.tcl 2010-04-12 04:54:38 UTC (rev 66413)
+++ trunk/base/src/registry2.0/portuninstall.tcl 2010-04-12 06:06:02 UTC (rev 66414)
@@ -52,6 +52,10 @@
if {[info exists options(ports_force)] && [string is true -strict $options(ports_force)]} {
set uninstall.force yes
}
+ # if no-exec is set for uninstall, set for deactivate too
+ if {[info exists options(ports_uninstall_no-exec)]} {
+ set options(ports_deactivate_no-exec) $options(ports_uninstall_no-exec)
+ }
# check which registry API to use
set use_reg2 [string equal ${macports::registry.format} "receipt_sqlite"]
@@ -126,7 +130,7 @@
foreach depport [$port dependents] {
# make sure it's still installed, since a previous dep uninstall may have removed it
if {[registry::entry exists $depport] && ([$depport state] == "imaged" || [$depport state] == "installed")} {
- if {![registry::run_target $depport uninstall $optionslist]} {
+ if {[info exists options(ports_uninstall_no-exec)] || ![registry::run_target $depport uninstall $optionslist]} {
set depname [$depport name]
set depver "[$depport version]_[$depport revision][$depport variants]"
registry_uninstall::uninstall $depname $depver $optionslist
@@ -142,8 +146,8 @@
if {[info exists options(ports_dryrun)] && [string is true -strict $options(ports_dryrun)]} {
ui_msg "For $portname @${v}: skipping deactivate (dry run)"
} else {
- if {![registry::run_target $port deactivate $optionslist]} {
- portimage::deactivate $portname $v $optionslist
+ if {[info exists options(ports_uninstall_no-exec)] || ![registry::run_target $port deactivate $optionslist]} {
+ portimage::deactivate $portname $v [array get options]
}
}
}
@@ -381,7 +385,7 @@
set ivariants [lindex $i 3]
if {[llength [registry::list_dependents $dep $iversion $irevision $ivariants]] == 0} {
set regref [registry::open_entry $dep $iversion $irevision $ivariants [lindex $i 5]]
- if {![registry::property_retrieve $regref requested] && (!$use_reg2 || ![registry::run_target $regref uninstall $optionslist])} {
+ if {![registry::property_retrieve $regref requested] && (!$use_reg2 || [info exists options(ports_uninstall_no-exec)] || ![registry::run_target $regref uninstall $optionslist])} {
set depver "${iversion}_${irevision}${ivariants}"
registry_uninstall::uninstall $dep $depver $optionslist
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100411/12c7190c/attachment.html>
More information about the macports-changes
mailing list