[121474] branches/gsoc14-interactive/base/src/registry2.0/portuninstall.tcl

shasha at macports.org shasha at macports.org
Thu Jun 26 08:55:32 PDT 2014


Revision: 121474
          https://trac.macports.org/changeset/121474
Author:   shasha at macports.org
Date:     2014-06-26 08:55:32 -0700 (Thu, 26 Jun 2014)
Log Message:
-----------
Added question for ambiguous uninstall

Modified Paths:
--------------
    branches/gsoc14-interactive/base/src/registry2.0/portuninstall.tcl

Modified: branches/gsoc14-interactive/base/src/registry2.0/portuninstall.tcl
===================================================================
--- branches/gsoc14-interactive/base/src/registry2.0/portuninstall.tcl	2014-06-26 15:51:18 UTC (rev 121473)
+++ branches/gsoc14-interactive/base/src/registry2.0/portuninstall.tcl	2014-06-26 15:55:32 UTC (rev 121474)
@@ -89,15 +89,38 @@
     if { [llength $ilist] > 1 } {
         # set portname again since the one we were passed may not have had the correct case
         set portname [[lindex $ilist 0] name]
-        ui_msg "$UI_PREFIX [msgcat::mc "The following versions of $portname are currently installed:"]"
-        foreach i [portlist_sortint $ilist] {
+        set msg "The following versions of $portname are currently installed:"
+        if {[macports::ui_isset ports_noninteractive]} {
+            ui_msg "$UI_PREFIX [msgcat::mc $msg]"
+        }
+        set sortedlist [portlist_sortint $ilist]
+        foreach i $sortedlist {
             set ispec "[$i version]_[$i revision][$i variants]"
-            if {[$i state] eq "installed"} {
-                ui_msg "$UI_PREFIX [format [msgcat::mc "    %s @%s (active)"] [$i name] $ispec]"
+            ##
+            # User Interaction Question
+            # Asking choice to select option in case of ambiguous uninstall
+            if {[info exists macports::ui_options(questions_multichoice)]} {
+                if { [$i state] eq "installed" } {
+                    lappend portilist [$i name]@[$i version]_[$i revision][$i variants](active)
+                } else {
+                    lappend portilist [$i name]@[$i version]_[$i revision][$i variants]
+                }
             } else {
-                ui_msg "$UI_PREFIX [format [msgcat::mc "    %s @%s"] [$i name] $ispec]"
+                if {[$i state] eq "installed"} {
+                    ui_msg "$UI_PREFIX [format [msgcat::mc "    %s @%s (active)"] [$i name] $ispec]"
+                } else {
+                    ui_msg "$UI_PREFIX [format [msgcat::mc "    %s @%s"] [$i name] $ispec]"
+                }
             }
         }
+        if {[info exists macports::ui_options(questions_multichoice)]} {
+            set retstring [$macports::ui_options(questions_multichoice) $msg "Choice_Q2" $portilist]
+            foreach index $retstring {
+                set uport [lindex $sortedlist [expr { $index - 1 }]]
+                uninstall [$uport name] [$uport version] [$uport revision] [$uport variants]
+            }
+            return 0
+        }
         throw registry::invalid "Registry error: Please specify the full version as recorded in the port registry."
     } elseif { [llength $ilist] == 1 } {
         set port [lindex $ilist 0]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140626/92cee147/attachment.html>


More information about the macports-changes mailing list