Ignore:
Timestamp:
Dec 11, 2004, 5:56:30 AM (14 years ago)
Author:
rshaw
Message:

Complete merge of the "archivemode" branch to HEAD!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/base/src/port1.0/portutil.tcl

    r8261 r9720  
    11931193        }
    11941194}
     1195
     1196# check if archive type is supported by current system
     1197# returns an error code if it is not
     1198proc archiveTypeIsSupported {type} {
     1199        set errmsg ""
     1200        switch -regex $type {
     1201                cp(io|gz) {
     1202                        set ditto "ditto"
     1203                        if {[catch {set ditto [binaryInPath $ditto]} errmsg] == 0} {
     1204                                return 0
     1205                        } else {
     1206                                set cpio "cpio"
     1207                                if {[catch {set cpio [binaryInPath $cpio]} errmsg] == 0} {
     1208                                        return 0
     1209                                }
     1210                        }
     1211                }
     1212                xar {
     1213                        set xar "xar"
     1214                        if {[catch {set xar [binaryInPath $xar]} errmsg] == 0} {
     1215                                return 0
     1216                        }
     1217                }
     1218                t(ar|gz) {
     1219                        set gnutar "gnutar"
     1220                        if {[catch {set gnutar [binaryInPath $gnutar]} errmsg] == 0} {
     1221                                return 0
     1222                        } else {
     1223                                set gtar "gtar"
     1224                                if {[catch {set gtar [binaryInPath $gtar]} errmsg] == 0} {
     1225                                        return 0
     1226                                } else {
     1227                                        set tar "tar"
     1228                                        if {[catch {set tar [binaryInPath $tar]} errmsg] == 0} {
     1229                                                if {[regexp {z$} $type]} {
     1230                                                        set gzip "gzip"
     1231                                                        if {[catch {set gzip [binaryInPath $gzip]} errmsg] == 0} {
     1232                                                                return 0
     1233                                                        }
     1234                                                } else {
     1235                                                        return 0
     1236                                                }
     1237                                        }
     1238                                }
     1239                        }
     1240                }
     1241                default {
     1242                        return -code error [format [msgcat::mc "Invalid port archive type '%s' specified!"] $type]
     1243                }
     1244        }
     1245        return -code error [format [msgcat::mc "Unsupported port archive type '%s': %s"] $type $errmsg]
     1246}
     1247
Note: See TracChangeset for help on using the changeset viewer.