source: branches/dp2mp-move/base/src/port1.0/portextract.tcl @ 24780

Last change on this file since 24780 was 24780, checked in by jmpp@…, 10 years ago

Moving all (relevant) com.apple.<stage> strings to the org.macports.<stage> namespace. This commit completes this particular task, no more strings to convert (or at least as far as I can see...).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.2 KB
Line 
1# et:ts=4
2# portextract.tcl
3# $Id: portextract.tcl 24780 2007-05-04 03:15:30Z jmpp@macports.org $
4#
5# Copyright (c) 2002 - 2003 Apple Computer, Inc.
6# All rights reserved.
7#
8# Redistribution and use in source and binary forms, with or without
9# modification, are permitted provided that the following conditions
10# are met:
11# 1. Redistributions of source code must retain the above copyright
12#    notice, this list of conditions and the following disclaimer.
13# 2. Redistributions in binary form must reproduce the above copyright
14#    notice, this list of conditions and the following disclaimer in the
15#    documentation and/or other materials provided with the distribution.
16# 3. Neither the name of Apple Computer, Inc. nor the names of its contributors
17#    may be used to endorse or promote products derived from this software
18#    without specific prior written permission.
19#
20# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30# POSSIBILITY OF SUCH DAMAGE.
31#
32
33package provide portextract 1.0
34package require portutil 1.0
35
36set org.macports.extract [target_new org.macports.extract extract_main]
37target_init ${org.macports.extract} extract_init
38target_provides ${org.macports.extract} extract
39target_requires ${org.macports.extract} fetch checksum
40target_prerun ${org.macports.extract} extract_start
41
42# define options
43options extract.only
44commands extract
45
46# Set up defaults
47# XXX call out to code in portutil.tcl XXX
48# This cleans the distfiles list of all site tags
49default extract.only {[disttagclean $distfiles]}
50
51default extract.dir {${workpath}}
52default extract.cmd gzip
53default extract.pre_args -dc
54default extract.post_args {"| ${portutil::autoconf::tar_command} -xf -"}
55
56set_ui_prefix
57
58proc extract_init {args} {
59    global extract.only extract.dir extract.cmd extract.pre_args extract.post_args distfiles use_bzip2 use_zip workpath
60   
61    if {[tbool use_bzip2]} {
62        option extract.cmd [binaryInPath "bzip2"]
63    } elseif {[tbool use_zip]} {
64        option extract.cmd [binaryInPath "unzip"]
65        option extract.pre_args -q
66        option extract.post_args "-d [option extract.dir]"
67    }
68}
69
70proc extract_start {args} {
71    global UI_PREFIX
72   
73    ui_msg "$UI_PREFIX [format [msgcat::mc "Extracting %s"] [option portname]]"
74}
75
76proc extract_main {args} {
77    global UI_PREFIX
78   
79    if {![exists distfiles] && ![exists extract.only]} {
80        # nothing to do
81        return 0
82    }
83   
84    foreach distfile [option extract.only] {
85        ui_info "$UI_PREFIX [format [msgcat::mc "Extracting %s"] $distfile]"
86        option extract.args "[option distpath]/$distfile"
87        if {[catch {command_exec extract} result]} {
88            return -code error "$result"
89        }
90    }
91    return 0
92}
Note: See TracBrowser for help on using the repository browser.