Changeset 146741 for trunk/base


Ignore:
Timestamp:
Mar 16, 2016, 5:26:29 PM (4 years ago)
Author:
ijackson@…
Message:

Use the ui_ask_alternative API.

Use the ui_ask_alternative API implemented in r146738.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/base/src/macports1.0/reclaim.tcl

    r146709 r146741  
    196196        }
    197197        if {[llength $superfluous_files] > 0} {
    198             ui_msg [msgcat::mc \
    199                 "Found %d files (total %s) that are no longer needed and can be deleted." \
    200                 $num_superfluous_files \
    201                 [bytesize $size_superfluous_files]]
    202             while {1} {
    203                 ui_msg "\[D]elete / \[k]eep / \[l]ist: "
    204                 switch [gets stdin] {
    205                     d -
    206                     D {
    207                         ui_msg "Deleting..."
    208                         foreach f $superfluous_files {
    209                             set root_length [string length "${root_dist}/"]
    210                             set home_length [string length "${home_dist}/"]
    211 
    212                             try -pass_signal {
    213                                 ui_info [msgcat::mc "Deleting unused file %s" $f]
    214                                 file delete -- $f
    215 
    216                                 set directory [file dirname $f]
    217                                 while {1} {
    218                                     set is_below_root [string equal -length $root_length $directory "${root_dist}/"]
    219                                     set is_below_home [string equal -length $home_length $directory "${home_dist}/"]
    220 
    221                                     if {!$is_below_root && !$is_below_home} {
    222                                         break
     198            if {[info exists macports::ui_options(questions_alternative)]} {
     199                array set alternatives {d delete k keep l list}
     200                set retstring [$macports::ui_options(questions_alternative) [msgcat::mc \
     201                    "Found %d files (total %s) that are no longer needed and can be deleted." \
     202                    $num_superfluous_files [bytesize $size_superfluous_files]] "deleteFilesQ" "alternatives" {k}]
     203               
     204                while 1 {
     205                    switch $retstring {
     206                        d {
     207                            ui_msg "Deleting..."
     208                            foreach f $superfluous_files {
     209                                set home_length [string length "${home_dist}/"]
     210
     211                                try -pass_signal {
     212                                    ui_info [msgcat::mc "Deleting unused file %s" $f]
     213                                    file delete -- $f
     214
     215                                    set directory [file dirname $f]
     216                                    while {1} {
     217                                        set is_below_root [string equal -length $root_length $directory "${root_dist}/"]
     218                                        set is_below_home [string equal -length $home_length $directory "${home_dist}/"]
     219
     220                                        if {!$is_below_root && !$is_below_home} {
     221                                            break
     222                                        }
     223
     224                                        if {[llength [readdir $directory]] > 0} {
     225                                            break
     226                                        }
     227
     228                                        ui_info [msgcat::mc "Deleting empty directory %s" $directory]
     229                                        try -pass_signal {
     230                                            file delete -- $directory
     231                                        } catch {{*} eCode eMessage} {
     232                                            ui_warn [msgcat::mc "Could not delete empty directory %s: %s" $directory $eMesage]
     233                                        }
     234                                        set directory [file dirname $directory]
    223235                                    }
    224 
    225                                     if {[llength [readdir $directory]] > 0} {
    226                                         break
    227                                     }
    228 
    229                                     ui_info [msgcat::mc "Deleting empty directory %s" $directory]
    230                                     try -pass_signal {
    231                                         file delete -- $directory
    232                                     } catch {{*} eCode eMessage} {
    233                                         ui_warn [msgcat::mc "Could not delete empty directory %s: %s" $directory $eMesage]
    234                                     }
    235                                     set directory [file dirname $directory]
     236                                } catch {{*} eCode eMessage} {
     237                                    ui_warn [msgcat::mc "Could not delete %s: %s" $f $eMessage]
    236238                                }
    237                             } catch {{*} eCode eMessage} {
    238                                 ui_warn [msgcat::mc "Could not delete %s: %s" $f $eMessage]
    239239                            }
     240                            break
    240241                        }
    241                         break
    242                     }
    243                     k -
    244                     K {
    245                         ui_msg "OK, keeping the files."
    246                         break
    247                     }
    248                     l -
    249                     L {
    250                         foreach f $superfluous_files {
    251                             ui_msg "  $f"
     242                        k {
     243                            ui_msg "OK, keeping the files."
     244                            break
     245                        }
     246                        l {
     247                            foreach f $superfluous_files {
     248                                ui_msg "  $f"
     249                            }
    252250                        }
    253251                    }
Note: See TracChangeset for help on using the changeset viewer.