[30004] trunk/base/src/port1.0/portstartupitem.tcl

source_changes at macosforge.org source_changes at macosforge.org
Wed Oct 17 15:35:05 PDT 2007


Revision: 30004
          http://trac.macosforge.org/projects/macports/changeset/30004
Author:   nox at macports.org
Date:     2007-10-17 15:35:05 -0700 (Wed, 17 Oct 2007)

Log Message:
-----------
portstartupitem.tcl: Whitespace changes (expanded tabs).

Modified Paths:
--------------
    trunk/base/src/port1.0/portstartupitem.tcl

Modified: trunk/base/src/port1.0/portstartupitem.tcl
===================================================================
--- trunk/base/src/port1.0/portstartupitem.tcl	2007-10-17 22:24:47 UTC (rev 30003)
+++ trunk/base/src/port1.0/portstartupitem.tcl	2007-10-17 22:35:05 UTC (rev 30004)
@@ -35,33 +35,33 @@
 
 
 #
-#	Newly added keys:
+#   Newly added keys:
 #
-#	startupitem.executable	the command to start the executable
-#		This is exclusive of init, start, stop, restart
-#		- This may be composed of exec arguments only--not shell code
+#   startupitem.executable  the command to start the executable
+#       This is exclusive of init, start, stop, restart
+#       - This may be composed of exec arguments only--not shell code
 #
-#	startupitem.pidfile		none
-#		There is no pidfile we can track
+#   startupitem.pidfile     none
+#       There is no pidfile we can track
 #
-#	startupitem.pidfile		auto [filename.pid]
-#		The daemon is responsible for creating/deleting the pidfile
+#   startupitem.pidfile     auto [filename.pid]
+#       The daemon is responsible for creating/deleting the pidfile
 #
-#	startupitem.pidfile		clean [filename.pid]
-#		The daemon creates the pidfile, but we must delete it
+#   startupitem.pidfile     clean [filename.pid]
+#       The daemon creates the pidfile, but we must delete it
 #
-#	startupitem.pidfile		manual [filename.pid]
-#		We create and destroy the pidfile to track the pid we receive from the executable
+#   startupitem.pidfile     manual [filename.pid]
+#       We create and destroy the pidfile to track the pid we receive from the executable
 #
-#	startupitem.logfile		logpath
-#		Log to the specified file -- if not specified then output to /dev/null
-#		- for launchd, just set this as the standard out key
-#		- for systemstarter, redirect to this
+#   startupitem.logfile     logpath
+#       Log to the specified file -- if not specified then output to /dev/null
+#       - for launchd, just set this as the standard out key
+#       - for systemstarter, redirect to this
 #
-#	startupitem.logevents	yes/no
-#		Log events to the log
-#		- for launchd, generate log messages inside daemondo
-#		- for systemstarter, generate log messages in our generated script
+#   startupitem.logevents   yes/no
+#       Log events to the log
+#       - for launchd, generate log messages inside daemondo
+#       - for systemstarter, generate log messages in our generated script
 #
 
 package provide portstartupitem 1.0
@@ -70,568 +70,569 @@
 set_ui_prefix
 
 proc startupitem_create_rcng {args} {
-	global prefix destroot portname os.platform
-	global startupitem.name startupitem.requires
-	global startupitem.start startupitem.stop startupitem.restart
-	global startupitem.type
+    global prefix destroot portname os.platform
+    global startupitem.name startupitem.requires
+    global startupitem.start startupitem.stop startupitem.restart
+    global startupitem.type
 
-	set scriptdir ${destroot}/${prefix}/etc/rc.d
+    set scriptdir ${destroot}/${prefix}/etc/rc.d
 
-	if { ![exists startupitem.requires] } {
-		set startupitem.requires ""
-	}
+    if { ![exists startupitem.requires] } {
+        set startupitem.requires ""
+    }
 
-	# XXX We can't share defaults with startupitem_create_darwin
-	foreach item {startupitem.start startupitem.stop startupitem.restart} {
-		if {![info exists $item]} {
-			return -code error "Missing required option $item"
-		}
-	}
+    # XXX We can't share defaults with startupitem_create_darwin
+    foreach item {startupitem.start startupitem.stop startupitem.restart} {
+        if {![info exists $item]} {
+            return -code error "Missing required option $item"
+        }
+    }
 
-	file mkdir ${destroot} ${scriptdir}
-	set fd [open [file join ${scriptdir} ${startupitem.name}.sh] w 0755]
+    file mkdir ${destroot} ${scriptdir}
+    set fd [open [file join ${scriptdir} ${startupitem.name}.sh] w 0755]
 
-	puts ${fd} "#!/bin/sh"
-	puts ${fd} "#"
-	puts ${fd} "# MacPorts generated RCng Script"
-	puts ${fd} "#"
-	puts ${fd} ""
-	puts ${fd} "# PROVIDE: ${startupitem.name}"
-	puts ${fd} "# REQUIRE: ${startupitem.requires}"
-	# TODO: Implement BEFORE support
-	puts ${fd} "# BEFORE:"
-	puts ${fd} "# KEYWORD: MacPorts"
-	puts ${fd} ""
-	puts ${fd} ". ${prefix}/etc/rc.subr"
-	puts ${fd} ""
-	puts ${fd} "name=\"${startupitem.name}\""
-	puts ${fd} "start_cmd=\"${startupitem.start}\""
-	puts ${fd} "stop_cmd=\"${startupitem.stop}\""
-	puts ${fd} "restart_cmd=\"${startupitem.restart}\""
-	puts ${fd} ""
-	puts ${fd} "load_rc_config \"${startupitem.name}\""
-	puts ${fd} ""
-	puts ${fd} "run_rc_command \"\$1\""
-	close ${fd}
+    puts ${fd} "#!/bin/sh"
+    puts ${fd} "#"
+    puts ${fd} "# MacPorts generated RCng Script"
+    puts ${fd} "#"
+    puts ${fd} ""
+    puts ${fd} "# PROVIDE: ${startupitem.name}"
+    puts ${fd} "# REQUIRE: ${startupitem.requires}"
+    # TODO: Implement BEFORE support
+    puts ${fd} "# BEFORE:"
+    puts ${fd} "# KEYWORD: MacPorts"
+    puts ${fd} ""
+    puts ${fd} ". ${prefix}/etc/rc.subr"
+    puts ${fd} ""
+    puts ${fd} "name=\"${startupitem.name}\""
+    puts ${fd} "start_cmd=\"${startupitem.start}\""
+    puts ${fd} "stop_cmd=\"${startupitem.stop}\""
+    puts ${fd} "restart_cmd=\"${startupitem.restart}\""
+    puts ${fd} ""
+    puts ${fd} "load_rc_config \"${startupitem.name}\""
+    puts ${fd} ""
+    puts ${fd} "run_rc_command \"\$1\""
+    close ${fd}
 }
 
 proc startupitem_create_darwin_systemstarter {args} {
-	global UI_PREFIX prefix destroot destroot.keepdirs  portname os.platform
-	global startupitem.name startupitem.requires startupitem.init
-	global startupitem.start startupitem.stop startupitem.restart startupitem.executable
-	global startupitem.pidfile startupitem.logfile startupitem.logevents
-	
-	set scriptdir ${prefix}/etc/startup
-	
-	set itemname			${startupitem.name}
-	set uppername			[string toupper ${startupitem.name}]
-	set itemdir				/Library/StartupItems/${itemname}
-	set startupItemDir		${destroot}${itemdir}
-	set startupItemScript	${startupItemDir}/${itemname}
-	set startupItemPlist	${startupItemDir}/StartupParameters.plist
-	
-	# Interpret the pidfile spec
-	#
-	# There are four cases:
-	#	(1) none (or none specified)
-	#	(2) auto [pidfilename]
-	#	(3) clean [pidfilename]
-	#	(4) manual [pidfilename]
-	#
-	set createPidFile false
-	set deletePidFile false
-	set pidFile ""
-	set pidfileArgCnt [llength ${startupitem.pidfile}]
-	if { ${pidfileArgCnt} > 0 } {
-		if { $pidfileArgCnt == 1 } {
-			set pidFile "${prefix}/var/run/${itemname}.pid"
-			lappend destroot.keepdirs "${destroot}${prefix}/var/run"
-		} else {
-			set pidFile [lindex ${startupitem.pidfile} 1]
-		}
-		if { $pidfileArgCnt > 2 } {
-			ui_error "$UI_PREFIX [msgcat::mc "Invalid parameter count to startupitem.pidfile: 2 expected, %d found" ${pidfileArgCnt}]"
-		}
-		
-		set pidStyle [lindex ${startupitem.pidfile} 0]
-		switch ${pidStyle} {
-			none	{ set createPidFile false; set deletePidFile false; set pidFile ""	}
-			auto	{ set createPidFile false; set deletePidFile false	}
-			clean	{ set createPidFile false; set deletePidFile true	}
-			manual	{ set createPidFile true;  set deletePidFile true	}
-			default	{
-				ui_error "$UI_PREFIX [msgcat::mc "Unknown pidfile style %s presented to startupitem.pidfile" ${pidStyle}]"
-			}
-		}
-	}
+    global UI_PREFIX prefix destroot destroot.keepdirs  portname os.platform
+    global startupitem.name startupitem.requires startupitem.init
+    global startupitem.start startupitem.stop startupitem.restart startupitem.executable
+    global startupitem.pidfile startupitem.logfile startupitem.logevents
+    
+    set scriptdir ${prefix}/etc/startup
+    
+    set itemname            ${startupitem.name}
+    set uppername           [string toupper ${startupitem.name}]
+    set itemdir             /Library/StartupItems/${itemname}
+    set startupItemDir      ${destroot}${itemdir}
+    set startupItemScript   ${startupItemDir}/${itemname}
+    set startupItemPlist    ${startupItemDir}/StartupParameters.plist
+    
+    # Interpret the pidfile spec
+    #
+    # There are four cases:
+    #   (1) none (or none specified)
+    #   (2) auto [pidfilename]
+    #   (3) clean [pidfilename]
+    #   (4) manual [pidfilename]
+    #
+    set createPidFile false
+    set deletePidFile false
+    set pidFile ""
+    set pidfileArgCnt [llength ${startupitem.pidfile}]
+    if { ${pidfileArgCnt} > 0 } {
+        if { $pidfileArgCnt == 1 } {
+            set pidFile "${prefix}/var/run/${itemname}.pid"
+            lappend destroot.keepdirs "${destroot}${prefix}/var/run"
+        } else {
+            set pidFile [lindex ${startupitem.pidfile} 1]
+        }
+        if { $pidfileArgCnt > 2 } {
+            ui_error "$UI_PREFIX [msgcat::mc "Invalid parameter count to startupitem.pidfile: 2 expected, %d found" ${pidfileArgCnt}]"
+        }
+        
+        set pidStyle [lindex ${startupitem.pidfile} 0]
+        switch ${pidStyle} {
+            none    { set createPidFile false; set deletePidFile false; set pidFile ""  }
+            auto    { set createPidFile false; set deletePidFile false  }
+            clean   { set createPidFile false; set deletePidFile true   }
+            manual  { set createPidFile true;  set deletePidFile true   }
+            default {
+                ui_error "$UI_PREFIX [msgcat::mc "Unknown pidfile style %s presented to startupitem.pidfile" ${pidStyle}]"
+            }
+        }
+    }
 
-	if { [llength ${startupitem.executable}] && 
-			![llength ${startupitem.init}] &&
-			![llength ${startupitem.start}] &&
-			![llength ${startupitem.stop}] &&
-			![llength ${startupitem.restart}] } {
-		# An executable is specified, and there is no init, start, stop, or restart
-	} else {
-		if { ![llength ${startupitem.start} ] } {
-			set startupitem.start [list "sh ${scriptdir}/${portname}.sh start"]
-		}
-		if { ![llength ${startupitem.stop} ] } {
-			set startupitem.stop [list "sh ${scriptdir}/${portname}.sh stop"]
-		}
-	}
-	if { ![llength ${startupitem.requires} ] } {
-		set startupitem.requires [list Disks NFS]
-	}
-	if { ![llength ${startupitem.logfile} ] } {
-		set startupitem.logfile "/dev/null"
-	}
-	
-	########################
-	# Create the startup item directory
-	file mkdir ${startupItemDir}
-	file attributes ${startupItemDir} -owner root -group wheel
-	
-	########################
-	# Generate the startup item script
-	set item [open "${startupItemScript}" w 0755]
-	file attributes "${startupItemScript}" -owner root -group wheel
-	
-	# Emit the header
-	puts ${item} {#!/bin/sh
+    if { [llength ${startupitem.executable}] && 
+            ![llength ${startupitem.init}] &&
+            ![llength ${startupitem.start}] &&
+            ![llength ${startupitem.stop}] &&
+            ![llength ${startupitem.restart}] } {
+        # An executable is specified, and there is no init, start, stop, or restart
+    } else {
+        if { ![llength ${startupitem.start} ] } {
+            set startupitem.start [list "sh ${scriptdir}/${portname}.sh start"]
+        }
+        if { ![llength ${startupitem.stop} ] } {
+            set startupitem.stop [list "sh ${scriptdir}/${portname}.sh stop"]
+        }
+    }
+    if { ![llength ${startupitem.requires} ] } {
+        set startupitem.requires [list Disks NFS]
+    }
+    if { ![llength ${startupitem.logfile} ] } {
+        set startupitem.logfile "/dev/null"
+    }
+    
+    ########################
+    # Create the startup item directory
+    file mkdir ${startupItemDir}
+    file attributes ${startupItemDir} -owner root -group wheel
+    
+    ########################
+    # Generate the startup item script
+    set item [open "${startupItemScript}" w 0755]
+    file attributes "${startupItemScript}" -owner root -group wheel
+    
+    # Emit the header
+    puts ${item} {#!/bin/sh
 #
 # MacPorts generated StartupItem
 #
 
 }
-	puts ${item} "prefix=$prefix"
-	# Source the utilities package and the MacPorts config file
-	puts ${item} {[ -r "/etc/rc.common" ] && . "/etc/rc.common"}
-	puts ${item} {[ -r "${prefix}/etc/rc.conf" ] && . "${prefix}/etc/rc.conf"}
+    puts ${item} "prefix=$prefix"
+    # Source the utilities package and the MacPorts config file
+    puts ${item} {[ -r "/etc/rc.common" ] && . "/etc/rc.common"}
+    puts ${item} {[ -r "${prefix}/etc/rc.conf" ] && . "${prefix}/etc/rc.conf"}
 
-	# Emit the Configuration Section
-	puts ${item} "NAME=${itemname}"
-	puts ${item} "ENABLE_FLAG=\${${uppername}:=-NO-}"
-	puts ${item} "PIDFILE=\"${pidFile}\""
-	puts ${item} "LOGFILE=\"${startupitem.logfile}\""
-	puts ${item} "EXECUTABLE=\"${startupitem.executable}\""
-	puts ${item} ""
-	puts ${item} "HAVE_STARTCMDS=[expr [llength ${startupitem.start}] ? "true" : "false"]"
-	puts ${item} "HAVE_STOPCMDS=[expr [llength ${startupitem.stop}] ? "true" : "false"]"
-	puts ${item} "HAVE_RESTARTCMDS=[expr [llength ${startupitem.restart}] ? "true" : "false"]"
-	puts ${item} "DELETE_PIDFILE=${createPidFile}"
-	puts ${item} "CREATE_PIDFILE=${deletePidFile}"
-	puts ${item} "LOG_EVENTS=[expr [tbool ${startupitem.logevents}] ? "true" : "false"]"
-	puts ${item} ""
+    # Emit the Configuration Section
+    puts ${item} "NAME=${itemname}"
+    puts ${item} "ENABLE_FLAG=\${${uppername}:=-NO-}"
+    puts ${item} "PIDFILE=\"${pidFile}\""
+    puts ${item} "LOGFILE=\"${startupitem.logfile}\""
+    puts ${item} "EXECUTABLE=\"${startupitem.executable}\""
+    puts ${item} ""
+    puts ${item} "HAVE_STARTCMDS=[expr [llength ${startupitem.start}] ? "true" : "false"]"
+    puts ${item} "HAVE_STOPCMDS=[expr [llength ${startupitem.stop}] ? "true" : "false"]"
+    puts ${item} "HAVE_RESTARTCMDS=[expr [llength ${startupitem.restart}] ? "true" : "false"]"
+    puts ${item} "DELETE_PIDFILE=${createPidFile}"
+    puts ${item} "CREATE_PIDFILE=${deletePidFile}"
+    puts ${item} "LOG_EVENTS=[expr [tbool ${startupitem.logevents}] ? "true" : "false"]"
+    puts ${item} ""
 
-	# Emit the init lines
-	foreach line ${startupitem.init} { puts ${item} ${line} }
-	puts ${item} ""
-	
-	# Emit the _Cmds
-	foreach kind { start stop restart } {
-		if {[llength [set "startupitem.$kind"]]} {
-			puts ${item} "${kind}Cmds () \{"
-			foreach line [set "startupitem.$kind"] {
-				puts ${item} "\t${line}"
-			}
-			puts ${item} "\}\n"
-		}
-	}
-	
-	# vvvvv START BOILERPLATE vvvvvv
-	# Emit the static boilerplate section
-	puts ${item} {
+    # Emit the init lines
+    foreach line ${startupitem.init} { puts ${item} ${line} }
+    puts ${item} ""
+    
+    # Emit the _Cmds
+    foreach kind { start stop restart } {
+        if {[llength [set "startupitem.$kind"]]} {
+            puts ${item} "${kind}Cmds () \{"
+            foreach line [set "startupitem.$kind"] {
+                puts ${item} "\t${line}"
+            }
+            puts ${item} "\}\n"
+        }
+    }
+    
+    # vvvvv START BOILERPLATE vvvvvv
+    # Emit the static boilerplate section
+    puts ${item} {
 IsEnabled () {
-	[ "${ENABLE_FLAG}" = "-YES-" ]
-	return $?
+    [ "${ENABLE_FLAG}" = "-YES-" ]
+    return $?
 }
 
 CreatePIDFile () {
-	echo $1 > "$PIDFILE"
+    echo $1 > "$PIDFILE"
 }
 
 DeletePIDFile () {
-	rm -f "$PIDFILE"
+    rm -f "$PIDFILE"
 }
 
 ReadPID () {
-	if [ -r "$PIDFILE" ]; then
-		read pid < "$PIDFILE"
-	else
-		pid=0
-	fi
-	echo $pid
+    if [ -r "$PIDFILE" ]; then
+        read pid < "$PIDFILE"
+    else
+        pid=0
+    fi
+    echo $pid
 }
 
 CheckPID () {
-	pid=$(ReadPID)
-	if (($pid)); then
-		kill -0 $pid >& /dev/null || pid=0
-	fi
-	echo $pid
+    pid=$(ReadPID)
+    if (($pid)); then
+        kill -0 $pid >& /dev/null || pid=0
+    fi
+    echo $pid
 }
 
 NoteEvent () {
-	ConsoleMessage "$1"
-	$LOG_EVENTS && [ -n "$LOGFILE" ] && echo "$(date) $NAME: $1" >> $LOGFILE
+    ConsoleMessage "$1"
+    $LOG_EVENTS && [ -n "$LOGFILE" ] && echo "$(date) $NAME: $1" >> $LOGFILE
 }
 
 StartService () {
-	if IsEnabled; then
-		NoteEvent "Starting $NAME"
-		
-		if $HAVE_STARTCMDS; then
-			startCmds
-		elif [ -n "$EXECUTABLE" ]; then
-			$EXECUTABLE &
-			pid=$!
-			if $CREATE_PIDFILE; then
-				CreatePIDFile $pid
-			fi
-		fi
-		
-	fi
+    if IsEnabled; then
+        NoteEvent "Starting $NAME"
+        
+        if $HAVE_STARTCMDS; then
+            startCmds
+        elif [ -n "$EXECUTABLE" ]; then
+            $EXECUTABLE &
+            pid=$!
+            if $CREATE_PIDFILE; then
+                CreatePIDFile $pid
+            fi
+        fi
+        
+    fi
 }
 
 StopService () {
-	NoteEvent "Stopping $NAME"
-	
-	gaveup=false
-	if $HAVE_STOPCMDS; then
-		# If we have stop cmds, use them
-		stopCmds
-	else		
-		# Otherwise, get the pid and try to stop the program
-		echo -n "Stopping $NAME..."
-		
-		pid=$(CheckPID)
-		if (($pid)); then
-			# Try to kill the process with SIGTERM
-			kill $pid
-			
-			# Wait for it to really stop
-			for ((CNT=0; CNT < 15 && $(CheckPID); ++CNT)); do
-				echo -n "."
-				sleep 1
-			done
-			
-			# Report status
-			if (($(CheckPID))); then
-				gaveup=true
-				echo "giving up."
-			else
-				echo "stopped."
-			fi
-		else
-			echo "it's not running."
-		fi
-	fi
-	
-	# Cleanup the pidfile if we've been asked to
-	if ! $gaveup && $DELETE_PIDFILE; then
-		DeletePIDFile
-	fi
+    NoteEvent "Stopping $NAME"
+    
+    gaveup=false
+    if $HAVE_STOPCMDS; then
+        # If we have stop cmds, use them
+        stopCmds
+    else        
+        # Otherwise, get the pid and try to stop the program
+        echo -n "Stopping $NAME..."
+        
+        pid=$(CheckPID)
+        if (($pid)); then
+            # Try to kill the process with SIGTERM
+            kill $pid
+            
+            # Wait for it to really stop
+            for ((CNT=0; CNT < 15 && $(CheckPID); ++CNT)); do
+                echo -n "."
+                sleep 1
+            done
+            
+            # Report status
+            if (($(CheckPID))); then
+                gaveup=true
+                echo "giving up."
+            else
+                echo "stopped."
+            fi
+        else
+            echo "it's not running."
+        fi
+    fi
+    
+    # Cleanup the pidfile if we've been asked to
+    if ! $gaveup && $DELETE_PIDFILE; then
+        DeletePIDFile
+    fi
 }
 
 RestartService () {
-	if IsEnabled; then
-		NoteEvent "Restarting $NAME"
-		
-		if $HAVE_RESTARTCMDS; then
-			# If we have restart cmds, use them
-			restartCmds
-		else
-			# Otherwise just stop/start it
-			StopService
-			StartService
-		fi
-		
-	fi
+    if IsEnabled; then
+        NoteEvent "Restarting $NAME"
+        
+        if $HAVE_RESTARTCMDS; then
+            # If we have restart cmds, use them
+            restartCmds
+        else
+            # Otherwise just stop/start it
+            StopService
+            StartService
+        fi
+        
+    fi
 }
 
 RunService "$1"
 }
-	# ^^^^^^ END BOILERPLATE ^^^^^^
-	
-	close ${item}
-	
-	########################
-	# Generate the plist
-	set para [open "${startupItemPlist}" w 0644]
-	file attributes "${startupItemPlist}" -owner root -group wheel
-	
-	puts ${para} "\{"
-	puts ${para} "\tDescription\t= \"${itemname}\";"
-	puts ${para} "\tProvides\t= (\"${itemname}\");"
-	puts -nonewline ${para} "\tRequires\t= ("
-	puts -nonewline ${para} [format {"%s"} [join ${startupitem.requires} {", "}]]
-	puts ${para} ");"
-	puts ${para} "\tOrderPreference\t= \"None\";"
-	puts ${para} "\}"
-	close ${para}
-	
-	# Emit some information for the user
-	ui_msg "###########################################################"
-	ui_msg "# A startup item has been generated that will aid in"
-	ui_msg "# starting ${portname} with SystemStarter. It is disabled"
-	ui_msg "# by default. Add the following line to /etc/hostconfig"
-	ui_msg "# or ${prefix}/etc/rc.conf to start it at startup:"
-	ui_msg "#"
-	ui_msg "# ${uppername}=-YES-"
-	ui_msg "###########################################################"
+    # ^^^^^^ END BOILERPLATE ^^^^^^
+    
+    close ${item}
+    
+    ########################
+    # Generate the plist
+    set para [open "${startupItemPlist}" w 0644]
+    file attributes "${startupItemPlist}" -owner root -group wheel
+    
+    puts ${para} "\{"
+    puts ${para} "\tDescription\t= \"${itemname}\";"
+    puts ${para} "\tProvides\t= (\"${itemname}\");"
+    puts -nonewline ${para} "\tRequires\t= ("
+    puts -nonewline ${para} [format {"%s"} [join ${startupitem.requires} {", "}]]
+    puts ${para} ");"
+    puts ${para} "\tOrderPreference\t= \"None\";"
+    puts ${para} "\}"
+    close ${para}
+    
+    # Emit some information for the user
+    ui_msg "###########################################################"
+    ui_msg "# A startup item has been generated that will aid in"
+    ui_msg "# starting ${portname} with SystemStarter. It is disabled"
+    ui_msg "# by default. Add the following line to /etc/hostconfig"
+    ui_msg "# or ${prefix}/etc/rc.conf to start it at startup:"
+    ui_msg "#"
+    ui_msg "# ${uppername}=-YES-"
+    ui_msg "###########################################################"
 }
 
 proc startupitem_create_darwin_launchd {args} {
-	global UI_PREFIX prefix destroot destroot.keepdirs portname os.platform
-	global startupitem.name startupitem.requires startupitem.init
-	global startupitem.start startupitem.stop startupitem.restart startupitem.executable
-	global startupitem.pidfile startupitem.logfile startupitem.logevents
+    global UI_PREFIX prefix destroot destroot.keepdirs portname os.platform
+    global startupitem.name startupitem.requires startupitem.init
+    global startupitem.start startupitem.stop startupitem.restart startupitem.executable
+    global startupitem.pidfile startupitem.logfile startupitem.logevents
 
-	set scriptdir ${prefix}/etc/startup
-	
-	set itemname		${startupitem.name}
-	set uniquename		org.macports.${itemname}
-	set plistname		${uniquename}.plist
-	set daemondest		LaunchDaemons
-	set itemdir			${prefix}/etc/${daemondest}/${uniquename}
-	set args			[list \
-							"${prefix}/bin/daemondo" \
-							"--label=${itemname}" \
-							]
-	
-	file mkdir ${destroot}${itemdir}
-	file attributes ${destroot}${itemdir} -owner root -group wheel
-		
-	if { [llength ${startupitem.executable}] && 
-			![llength ${startupitem.init}] &&
-			![llength ${startupitem.start}] &&
-			![llength ${startupitem.stop}] &&
-			![llength ${startupitem.restart}] } {
-			
-		# An executable is specified, and there is no init, start, stop, or restart
-		# code; so we don't need a wrapper script
-		set args [concat $args "--start-cmd" ${startupitem.executable} ";"]
-		
-	} else {
-	
-		# No executable was specified, or there was an init, start, stop, or restart
-		# option, so we do need a wrapper script
-		
-		set wrappername		${itemname}.wrapper
-		set wrapper			"${itemdir}/${wrappername}"
+    set scriptdir ${prefix}/etc/startup
+    
+    set itemname        ${startupitem.name}
+    set uniquename      org.macports.${itemname}
+    set plistname       ${uniquename}.plist
+    set daemondest      LaunchDaemons
+    set itemdir         ${prefix}/etc/${daemondest}/${uniquename}
+    set args            [list \
+                            "${prefix}/bin/daemondo" \
+                            "--label=${itemname}" \
+                            ]
+    
+    file mkdir ${destroot}${itemdir}
+    file attributes ${destroot}${itemdir} -owner root -group wheel
+        
+    if { [llength ${startupitem.executable}] && 
+            ![llength ${startupitem.init}] &&
+            ![llength ${startupitem.start}] &&
+            ![llength ${startupitem.stop}] &&
+            ![llength ${startupitem.restart}] } {
+            
+        # An executable is specified, and there is no init, start, stop, or restart
+        # code; so we don't need a wrapper script
+        set args [concat $args "--start-cmd" ${startupitem.executable} ";"]
+        
+    } else {
+    
+        # No executable was specified, or there was an init, start, stop, or restart
+        # option, so we do need a wrapper script
+        
+        set wrappername     ${itemname}.wrapper
+        set wrapper         "${itemdir}/${wrappername}"
 
-		if { ![llength ${startupitem.start}] } {
-			set startupitem.start [list "sh ${scriptdir}/${portname}.sh start"]
-		}
-		if { ![llength ${startupitem.stop}] } {
-			set startupitem.stop [list "sh ${scriptdir}/${portname}.sh stop"]
-		}
-		if { ![llength ${startupitem.restart}] } {
-			set startupitem.restart [list Stop Start]
-		}
+        if { ![llength ${startupitem.start}] } {
+            set startupitem.start [list "sh ${scriptdir}/${portname}.sh start"]
+        }
+        if { ![llength ${startupitem.stop}] } {
+            set startupitem.stop [list "sh ${scriptdir}/${portname}.sh stop"]
+        }
+        if { ![llength ${startupitem.restart}] } {
+            set startupitem.restart [list Stop Start]
+        }
 
-		lappend args \
-			"--start-cmd"   ${wrapper} start   ";" \
-			"--stop-cmd"    ${wrapper} stop    ";" \
-			"--restart-cmd" ${wrapper} restart ";"
+        lappend args \
+            "--start-cmd"   ${wrapper} start   ";" \
+            "--stop-cmd"    ${wrapper} stop    ";" \
+            "--restart-cmd" ${wrapper} restart ";"
 
-		# Create the wrapper script
-		set item [open "${destroot}${wrapper}" w 0755]
-		file attributes "${destroot}${wrapper}" -owner root -group wheel
+        # Create the wrapper script
+        set item [open "${destroot}${wrapper}" w 0755]
+        file attributes "${destroot}${wrapper}" -owner root -group wheel
 
-		puts ${item} "#!/bin/sh"
-		puts ${item} "#"
-		puts ${item} "# MacPorts generated daemondo support script"
-		puts ${item} "#"
-		puts ${item} ""
-		
-		puts ${item} "#"
-		puts ${item} "# Init"
-		puts ${item} "#"
-		puts ${item} "prefix=$prefix"
-		foreach line ${startupitem.init}	{ puts ${item} ${line} }
-		puts ${item} ""
+        puts ${item} "#!/bin/sh"
+        puts ${item} "#"
+        puts ${item} "# MacPorts generated daemondo support script"
+        puts ${item} "#"
+        puts ${item} ""
+        
+        puts ${item} "#"
+        puts ${item} "# Init"
+        puts ${item} "#"
+        puts ${item} "prefix=$prefix"
+        foreach line ${startupitem.init}    { puts ${item} ${line} }
+        puts ${item} ""
 
-		puts ${item} "#"
-		puts ${item} "# Start"
-		puts ${item} "#"
-		puts ${item} "Start()"
-		puts ${item} "\{"
-		foreach line ${startupitem.start}	{ puts ${item} "\t${line}" }
-		puts ${item} "\}"
-		puts ${item} ""
-		
-		puts ${item} "#"
-		puts ${item} "# Stop"
-		puts ${item} "#"
-		puts ${item} "Stop()"
-		puts ${item} "\{"
-		foreach line ${startupitem.stop}	{ puts ${item} "\t${line}" }
-		puts ${item} "\}"
-		puts ${item} ""
-	
-		puts ${item} "#"
-		puts ${item} "# Restart"
-		puts ${item} "#"
-		puts ${item} "Restart()"
-		puts ${item} "\{"
-		foreach line ${startupitem.restart} { puts ${item} "\t${line}" }
-		puts ${item} "\}"
-		puts ${item} ""
+        puts ${item} "#"
+        puts ${item} "# Start"
+        puts ${item} "#"
+        puts ${item} "Start()"
+        puts ${item} "\{"
+        foreach line ${startupitem.start}   { puts ${item} "\t${line}" }
+        puts ${item} "\}"
+        puts ${item} ""
+        
+        puts ${item} "#"
+        puts ${item} "# Stop"
+        puts ${item} "#"
+        puts ${item} "Stop()"
+        puts ${item} "\{"
+        foreach line ${startupitem.stop}    { puts ${item} "\t${line}" }
+        puts ${item} "\}"
+        puts ${item} ""
+    
+        puts ${item} "#"
+        puts ${item} "# Restart"
+        puts ${item} "#"
+        puts ${item} "Restart()"
+        puts ${item} "\{"
+        foreach line ${startupitem.restart} { puts ${item} "\t${line}" }
+        puts ${item} "\}"
+        puts ${item} ""
 
-		puts ${item} "#"
-		puts ${item} "# Run"
-		puts ${item} "#"
-		puts ${item} "Run()"
-		puts ${item} "\{"
-		puts ${item} "case \$1 in"
-		puts ${item} "  start  ) Start   ;;"
-		puts ${item} "  stop   ) Stop    ;;"
-		puts ${item} "  restart) Restart ;;"
-		puts ${item} "  *      ) echo \"\$0: unknown argument: \$1\";;"
-		puts ${item} "esac"
-		puts ${item} "\}"
-		puts ${item} ""
+        puts ${item} "#"
+        puts ${item} "# Run"
+        puts ${item} "#"
+        puts ${item} "Run()"
+        puts ${item} "\{"
+        puts ${item} "case \$1 in"
+        puts ${item} "  start  ) Start   ;;"
+        puts ${item} "  stop   ) Stop    ;;"
+        puts ${item} "  restart) Restart ;;"
+        puts ${item} "  *      ) echo \"\$0: unknown argument: \$1\";;"
+        puts ${item} "esac"
+        puts ${item} "\}"
+        puts ${item} ""
 
-		puts ${item} "#"
-		puts ${item} "# Run a phase based on the selector"
-		puts ${item} "#"
-		puts ${item} "Run \$1"
-		puts ${item} ""
+        puts ${item} "#"
+        puts ${item} "# Run a phase based on the selector"
+        puts ${item} "#"
+        puts ${item} "Run \$1"
+        puts ${item} ""
 
-		close ${item}
-	}
-		
-	# To log events then tell daemondo to log at verbosity=1
-	if { [tbool startupitem.logevents] } {
-		lappend args "--verbosity=1"
-	}
-	
-	# If pidfile was specified, translate it for daemondo.
-	#
-	# There are four cases:
-	#	(1) none
-	#	(2) auto [pidfilename]
-	#	(3) cleanup [pidfilename]
-	#	(4) manual [pidfilename]
-	#
-	set pidfileArgCnt [llength ${startupitem.pidfile}]
-	if { ${pidfileArgCnt} > 0 } {
-		if { $pidfileArgCnt == 1 } {
-			set pidFile "${prefix}/var/run/${itemname}.pid"
-			lappend destroot.keepdirs "${destroot}${prefix}/var/run"
-		} else {
-			set pidFile [lindex ${startupitem.pidfile} 1]
-		}
+        close ${item}
+    }
+        
+    # To log events then tell daemondo to log at verbosity=1
+    if { [tbool startupitem.logevents] } {
+        lappend args "--verbosity=1"
+    }
+    
+    # If pidfile was specified, translate it for daemondo.
+    #
+    # There are four cases:
+    #   (1) none
+    #   (2) auto [pidfilename]
+    #   (3) cleanup [pidfilename]
+    #   (4) manual [pidfilename]
+    #
+    set pidfileArgCnt [llength ${startupitem.pidfile}]
+    if { ${pidfileArgCnt} > 0 } {
+        if { $pidfileArgCnt == 1 } {
+            set pidFile "${prefix}/var/run/${itemname}.pid"
+            lappend destroot.keepdirs "${destroot}${prefix}/var/run"
+        } else {
+            set pidFile [lindex ${startupitem.pidfile} 1]
+        }
 
-		if { ${pidfileArgCnt} > 2 } {
-			ui_error "$UI_PREFIX [msgcat::mc "Invalid parameter count to startupitem.pidfile: 2 expected, %d found" ${pidfileArgCnt}]"
-		}
-		
-		# Translate into appropriate arguments to daemondo
-		set pidStyle [lindex ${startupitem.pidfile} 0]
-		switch ${pidStyle} {
-			none	{ lappend args "--pid=none" }
-			auto	{ lappend args "--pid=fileauto" "--pidfile" ${pidFile} }
-			clean	{ lappend args "--pid=fileclean" "--pidfile" ${pidFile} }
-			manual	{ lappend args "--pid=exec" "--pidfile" ${pidFile} }
-			default	{
-				ui_error "$UI_PREFIX [msgcat::mc "Unknown pidfile style %s presented to startupitem.pidfile" ${pidStyle}]"
-			}
-		}
-	} else {
-		if { [llength ${startupitem.executable}] } {
-			lappend args "--pid=exec"
-		} else {
-			lappend args "--pid=none"
-		}
-	}
-	
-	# Create the plist file
-	set plist [open "${destroot}${itemdir}/${plistname}" w 0644]
-	
-	puts ${plist} "<?xml version='1.0' encoding='UTF-8'?>"
-	puts ${plist} "<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN"
-	puts ${plist} "http://www.apple.com/DTDs/PropertyList-1.0.dtd >"
-	puts ${plist} "<plist version='1.0'>"
-	puts ${plist} "<dict>"
-	
-	puts ${plist} "<key>Label</key><string>${uniquename}</string>"
-	
-	puts ${plist} "<key>ProgramArguments</key>"
-	puts ${plist} "<array>"
-	foreach arg ${args} { puts ${plist} "\t<string>${arg}</string>" }
-	puts ${plist} "</array>"
-	
-	puts ${plist} "<key>Debug</key><false/>"
-	puts ${plist} "<key>Disabled</key><true/>"
-	puts ${plist} "<key>OnDemand</key><false/>"
-	puts ${plist} "<key>RunAtLoad</key><false/>"
-	
-	if { [llength ${startupitem.logfile}] } {
-		puts ${plist} "<key>StandardOutPath</key><string>${startupitem.logfile}</string>"
-	}
-	
-	puts ${plist} "</dict>"
-	puts ${plist} "</plist>"
+        if { ${pidfileArgCnt} > 2 } {
+            ui_error "$UI_PREFIX [msgcat::mc "Invalid parameter count to startupitem.pidfile: 2 expected, %d found" ${pidfileArgCnt}]"
+        }
+        
+        # Translate into appropriate arguments to daemondo
+        set pidStyle [lindex ${startupitem.pidfile} 0]
+        switch ${pidStyle} {
+            none    { lappend args "--pid=none" }
+            auto    { lappend args "--pid=fileauto" "--pidfile" ${pidFile} }
+            clean   { lappend args "--pid=fileclean" "--pidfile" ${pidFile} }
+            manual  { lappend args "--pid=exec" "--pidfile" ${pidFile} }
+            default {
+                ui_error "$UI_PREFIX [msgcat::mc "Unknown pidfile style %s presented to startupitem.pidfile" ${pidStyle}]"
+            }
+        }
+    } else {
+        if { [llength ${startupitem.executable}] } {
+            lappend args "--pid=exec"
+        } else {
+            lappend args "--pid=none"
+        }
+    }
+    
+    # Create the plist file
+    set plist [open "${destroot}${itemdir}/${plistname}" w 0644]
+    
+    puts ${plist} "<?xml version='1.0' encoding='UTF-8'?>"
+    puts ${plist} "<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN"
+    puts ${plist} "http://www.apple.com/DTDs/PropertyList-1.0.dtd >"
+    puts ${plist} "<plist version='1.0'>"
+    puts ${plist} "<dict>"
+    
+    puts ${plist} "<key>Label</key><string>${uniquename}</string>"
+    
+    puts ${plist} "<key>ProgramArguments</key>"
+    puts ${plist} "<array>"
+    foreach arg ${args} { puts ${plist} "\t<string>${arg}</string>" }
+    puts ${plist} "</array>"
+    
+    puts ${plist} "<key>Debug</key><false/>"
+    puts ${plist} "<key>Disabled</key><true/>"
+    puts ${plist} "<key>OnDemand</key><false/>"
+    puts ${plist} "<key>RunAtLoad</key><false/>"
+    
+    if { [llength ${startupitem.logfile}] } {
+        puts ${plist} "<key>StandardOutPath</key><string>${startupitem.logfile}</string>"
+    }
+    
+    puts ${plist} "</dict>"
+    puts ${plist} "</plist>"
 
-	close ${plist}
+    close ${plist}
 
-	# Make a symlink to the plist file
-	file mkdir "${destroot}/Library/${daemondest}"
-	system "cd ${destroot}/Library/${daemondest} && ln -sf ${itemdir}/${plistname}"
-	
-	# If launchd is not available, warn the user
-	set haveLaunchd	${portutil::autoconf::have_launchd}
-	if {![tbool haveLaunchd]} {
-		ui_msg "###########################################################"
-		ui_msg "# WARNING:"
-		ui_msg "# We're building a launchd startup item, but launchd wasn't"
-		ui_msg "# found by configure. Are you sure you didn't mess up your"
-		ui_msg "# ports.conf settings?"
-		ui_msg "###########################################################"
-	}
-	
-	# Emit some information for the user
-	ui_msg "###########################################################"
-	ui_msg "# A startup item has been generated that will aid in"
-	ui_msg "# starting ${portname} with launchd. It is disabled"
-	ui_msg "# by default. Execute the following command to start it,"
-	ui_msg "# and to cause it to launch at startup:"
-	ui_msg "#"
-	ui_msg "# sudo launchctl load -w /Library/${daemondest}/${plistname}"
-	ui_msg "###########################################################"
+    # Make a symlink to the plist file
+    file mkdir "${destroot}/Library/${daemondest}"
+    system "cd ${destroot}/Library/${daemondest} && ln -sf ${itemdir}/${plistname}"
+    
+    # If launchd is not available, warn the user
+    set haveLaunchd ${portutil::autoconf::have_launchd}
+    if {![tbool haveLaunchd]} {
+        ui_msg "###########################################################"
+        ui_msg "# WARNING:"
+        ui_msg "# We're building a launchd startup item, but launchd wasn't"
+        ui_msg "# found by configure. Are you sure you didn't mess up your"
+        ui_msg "# ports.conf settings?"
+        ui_msg "###########################################################"
+    }
+    
+    # Emit some information for the user
+    ui_msg "###########################################################"
+    ui_msg "# A startup item has been generated that will aid in"
+    ui_msg "# starting ${portname} with launchd. It is disabled"
+    ui_msg "# by default. Execute the following command to start it,"
+    ui_msg "# and to cause it to launch at startup:"
+    ui_msg "#"
+    ui_msg "# sudo launchctl load -w /Library/${daemondest}/${plistname}"
+    ui_msg "###########################################################"
 }
 
 proc startupitem_create {args} {
-	global UI_PREFIX
-	global startupitem.type os.platform
-	
-	set startupitem.type [string tolower ${startupitem.type}]
-	
-	# Calculate a default value for startupitem.type
-	if {${startupitem.type} == "default" || ${startupitem.type} == ""} {
-		switch -exact ${os.platform} {
-			darwin {
-				set haveLaunchd	${portutil::autoconf::have_launchd}
-				if { [tbool haveLaunchd] } {
-					set startupitem.type "launchd"
-				} else {
-					set startupitem.type "systemstarter"
-				}
-			}
-			default {
-				set startupitem.type "rcng"
-			}
-		}
-	}
+    global UI_PREFIX
+    global startupitem.type os.platform
+    
+    set startupitem.type [string tolower ${startupitem.type}]
+    
+    # Calculate a default value for startupitem.type
+    if {${startupitem.type} == "default" || ${startupitem.type} == ""} {
+        switch -exact ${os.platform} {
+            darwin {
+                set haveLaunchd ${portutil::autoconf::have_launchd}
+                if { [tbool haveLaunchd] } {
+                    set startupitem.type "launchd"
+                } else {
+                    set startupitem.type "systemstarter"
+                }
+            }
+            default {
+                set startupitem.type "rcng"
+            }
+        }
+    }
 
-	ui_msg "$UI_PREFIX [msgcat::mc "Creating ${startupitem.type} control script"]"
+    ui_msg "$UI_PREFIX [msgcat::mc "Creating ${startupitem.type} control script"]"
 
-	switch -- ${startupitem.type} {
-		launchd			{ startupitem_create_darwin_launchd }
-		systemstarter	{ startupitem_create_darwin_systemstarter }
-		rcng			{ startupitem_create_rcng }
-		default			{ ui_error "$UI_PREFIX [msgcat::mc "Unrecognized startupitem type %s" ${startupitem.type}]" }
-	}
+    switch -- ${startupitem.type} {
+        launchd         { startupitem_create_darwin_launchd }
+        systemstarter   { startupitem_create_darwin_systemstarter }
+        rcng            { startupitem_create_rcng }
+        default         { ui_error "$UI_PREFIX [msgcat::mc "Unrecognized startupitem type %s" ${startupitem.type}]" }
+    }
 }
+

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20071017/fde83c22/attachment-0001.html


More information about the macports-changes mailing list