[31500] trunk/base/src/port

Randall Wood rhwood at mac.com
Mon Nov 26 01:40:09 PST 2007


Is there a good reason not to do this in the MacPorts API?

On 26 Nov 2007, at 00:47, jberry at macports.org wrote:

> Revision 31500 Author jberry at macports.org Date 2007-11-25 21:47:26  
> -0800 (Sun, 25 Nov 2007) Log Message Initial support for port load  
> and port unload actions. These actions call invoke launchctl to  
> load or unload the startupitem.plist for the specified port(s).  
> Modified Paths
> trunk/base/src/port/port.tcl
> trunk/base/src/port1.0/Makefile
> trunk/base/src/port1.0/port.tcl
> trunk/base/src/port1.0/portdestroot.tcl
> trunk/base/src/port1.0/portstartupitem.tcl
> Added Paths
> trunk/base/src/port1.0/portload.tcl
> trunk/base/src/port1.0/portunload.tcl
> Diff
> Modified: trunk/base/src/port/port.tcl (31499 => 31500) --- trunk/ 
> base/src/port/port.tcl	2007-11-26 05:41:11 UTC (rev 31499) +++  
> trunk/base/src/port/port.tcl	2007-11-26 05:47:26 UTC (rev 31500) @@  
> -2164,6 +2164,8 @@ livecheck action_target distcheck action_target  
> mirror action_target + load action_target + unload action_target  
> archive action_target unarchive action_target
> Modified: trunk/base/src/port1.0/Makefile (31499 => 31500) ---  
> trunk/base/src/port1.0/Makefile	2007-11-26 05:41:11 UTC (rev 31499)  
> +++ trunk/base/src/port1.0/Makefile	2007-11-26 05:47:26 UTC (rev  
> 31500) @@ -3,9 +3,9 @@ SRCS=	port.tcl portchecksum.tcl  
> portconfigure.tcl portextract.tcl	 \ portfetch.tcl portmain.tcl  
> portbuild.tcl portpatch.tcl portutil.tcl \ portinstall.tcl  
> portdepends.tcl portdestroot.tcl portlint.tcl \ - portclean.tcl  
> porttest.tcl portactivate.tcl portsubmit.tcl \ + portclean.tcl  
> porttest.tcl portactivate.tcl portsubmit.tcl \ port_autoconf.tcl  
> portstartupitem.tcl porttrace.tcl portlivecheck.tcl \ -	 
> portdistcheck.tcl portmirror.tcl +	portdistcheck.tcl portmirror.tcl  
> portload.tcl portunload.tcl SUBDIR=	 resources
> Modified: trunk/base/src/port1.0/port.tcl (31499 => 31500) ---  
> trunk/base/src/port1.0/port.tcl	2007-11-26 05:41:11 UTC (rev 31499)  
> +++ trunk/base/src/port1.0/port.tcl	2007-11-26 05:47:26 UTC (rev  
> 31500) @@ -52,3 +52,5 @@ package require portdistcheck 1.0 package  
> require portlivecheck 1.0 package require portmirror 1.0 +package  
> require portload 1.0 +package require portunload 1.0
> Modified: trunk/base/src/port1.0/portdestroot.tcl (31499 => 31500)  
> --- trunk/base/src/port1.0/portdestroot.tcl	2007-11-26 05:41:11 UTC  
> (rev 31499) +++ trunk/base/src/port1.0/portdestroot.tcl	2007-11-26  
> 05:47:26 UTC (rev 31500) @@ -47,6 +47,7 @@ options startupitem.name  
> startupitem.start startupitem.stop startupitem.restart options  
> startupitem.type startupitem.executable options startupitem.pidfile  
> startupitem.logfile startupitem.logevents startupitem.netchange  
> +options startupitem.uniquename startupitem.plist  
> startupitem.location commands destroot # Set defaults @@ -62,6  
> +63,9 @@ default destroot.violate_mtree no default  
> startupitem.name        {${portname}} +default  
> startupitem.uniquename {org.macports.${startupitem.name}} +default  
> startupitem.plist {${startupitem.uniquename}.plist} +default  
> startupitem.location LaunchDaemons default startupitem.init ""  
> default startupitem.start "" default startupitem.stop ""
> Added: trunk/base/src/port1.0/portload.tcl (0 => 31500) --- trunk/ 
> base/src/port1.0/portload.tcl	 (rev 0) +++ trunk/base/src/port1.0/ 
> portload.tcl	2007-11-26 05:47:26 UTC (rev 31500) @@ -0,0 +1,59 @@  
> +# et:ts=4 +# portsubmit.tcl +# $Id: portsubmit.tcl 26177  
> 2007-06-15 10:11:22Z jmpp at macports.org $ +# +# Copyright (c) 2007  
> MacPorts Project +# Copyright (c) 2007 James D. Berry +# All rights  
> reserved. +# +# Redistribution and use in source and binary forms,  
> with or without +# modification, are permitted provided that the  
> following conditions +# are met: +# 1. Redistributions of source  
> code must retain the above copyright +# notice, this list of  
> conditions and the following disclaimer. +# 2. Redistributions in  
> binary form must reproduce the above copyright +# notice, this list  
> of conditions and the following disclaimer in the +# documentation  
> and/or other materials provided with the distribution. +# 3.  
> Neither the name of Apple Computer, Inc. nor the names of its  
> contributors +# may be used to endorse or promote products derived  
> from this software +# without specific prior written permission. +#  
> +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND  
> CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES,  
> INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF  
> MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE  
> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS  
> BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,  
> EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED  
> TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,  
> DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND  
> ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT  
> LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING  
> IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  
> +# POSSIBILITY OF SUCH DAMAGE. +# + +package provide portload 1.0  
> +package require portutil 1.0 + +set org.macports.load [target_new  
> org.macports.load load_main] +target_runtype ${org.macports.load}  
> always +target_provides ${org.macports.load} load +target_requires $ 
> {org.macports.load} main + +set_ui_prefix + +proc load_main {args}  
> { + global startupitem.type startupitem.name startupitem.location  
> startupitem.plist + set launchctl_path $ 
> {portutil::autoconf::launchctl_path} + + foreach { path } "/Library/ 
> ${startupitem.location}/${startupitem.plist}" { + if {[string  
> length $launchctl_path] == 0} { + return -code error [format  
> [msgcat::mc "launchctl command was not found by configure"]] + }  
> elseif {![file exists $path]} { + return -code error [format  
> [msgcat::mc "Launchd plist %s was not found"] $path] + } else { +  
> exec $launchctl_path load -w $path + } + } + + return +}
> Modified: trunk/base/src/port1.0/portstartupitem.tcl (31499 =>  
> 31500) --- trunk/base/src/port1.0/portstartupitem.tcl	2007-11-26  
> 05:41:11 UTC (rev 31499) +++ trunk/base/src/port1.0/ 
> portstartupitem.tcl	2007-11-26 05:47:26 UTC (rev 31500) @@ -3,8  
> +3,9 @@ # # $Id$ # -# Copyright (c) 2004, 2005 Markus W. Weissman  
> <mww at macports.org>, -# Copyright (c) 2005 Robert Shaw  
> <rshaw at opendarwin.org>, +# Copyright (c) 2004-2007 MacPorts Project  
> +# Copyright (c) 2006-2007 James D. Berry +# Copyright (c)  
> 2004,2005 Markus W. Weissman <mww at macports.org> # All rights  
> reserved. # # Redistribution and use in source and binary forms,  
> with or without @@ -390,9 +391,9 @@ set scriptdir ${prefix}/etc/ 
> startup set itemname ${startupitem.name} - set uniquename  
> org.macports.${itemname} - set plistname ${uniquename}.plist - set  
> daemondest LaunchDaemons + set uniquename ${startupitem.uniquename}  
> + set plistname ${startupitem.plist} + set daemondest $ 
> {startupitem.location} set itemdir ${prefix}/etc/${daemondest}/$ 
> {uniquename} set args [list \ "${prefix}/bin/daemondo" \
> Added: trunk/base/src/port1.0/portunload.tcl (0 => 31500) --- trunk/ 
> base/src/port1.0/portunload.tcl	 (rev 0) +++ trunk/base/src/port1.0/ 
> portunload.tcl	2007-11-26 05:47:26 UTC (rev 31500) @@ -0,0 +1,59 @@  
> +# et:ts=4 +# portsubmit.tcl +# $Id: portsubmit.tcl 26177  
> 2007-06-15 10:11:22Z jmpp at macports.org $ +# +# Copyright (c) 2007  
> MacPorts Project +# Copyright (c) 2007 James D. Berry +# All rights  
> reserved. +# +# Redistribution and use in source and binary forms,  
> with or without +# modification, are permitted provided that the  
> following conditions +# are met: +# 1. Redistributions of source  
> code must retain the above copyright +# notice, this list of  
> conditions and the following disclaimer. +# 2. Redistributions in  
> binary form must reproduce the above copyright +# notice, this list  
> of conditions and the following disclaimer in the +# documentation  
> and/or other materials provided with the distribution. +# 3.  
> Neither the name of Apple Computer, Inc. nor the names of its  
> contributors +# may be used to endorse or promote products derived  
> from this software +# without specific prior written permission. +#  
> +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND  
> CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES,  
> INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF  
> MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE  
> DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS  
> BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,  
> EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED  
> TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,  
> DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND  
> ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT  
> LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING  
> IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  
> +# POSSIBILITY OF SUCH DAMAGE. +# + +package provide portunload 1.0  
> +package require portutil 1.0 + +set org.macports.unload  
> [target_new org.macports.unload unload_main] +target_runtype $ 
> {org.macports.unload} always +target_provides $ 
> {org.macports.unload} unload +target_requires $ 
> {org.macports.unload} main + +set_ui_prefix + +proc unload_main  
> {args} { + global startupitem.type startupitem.name  
> startupitem.location startupitem.plist + set launchctl_path $ 
> {portutil::autoconf::launchctl_path} + + foreach { path } "/Library/ 
> ${startupitem.location}/${startupitem.plist}" { + if {[string  
> length $launchctl_path] == 0} { + return -code error [format  
> [msgcat::mc "launchctl command was not found by configure"]] + }  
> elseif {![file exists $path]} { + return -code error [format  
> [msgcat::mc "Launchd plist %s was not found"] $path] + } else { +  
> exec $launchctl_path unload -w $path + } + } + + return +}
> _______________________________________________
> macports-changes mailing list
> macports-changes at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo/macports-changes



Randall Wood
rhwood at mac.com
http://shyramblings.blogspot.com

"The rules are simple: The ball is round. The game lasts 90 minutes.  
All the
rest is just philosophy."




More information about the macports-dev mailing list