1 | --- portstartupitem.tcl.org 2007-11-01 17:31:40.000000000 -0700 |
---|
2 | +++ portstartupitem.tcl 2007-11-02 01:14:28.000000000 -0700 |
---|
3 | @@ -41,6 +41,14 @@ |
---|
4 | # This is exclusive of init, start, stop, restart |
---|
5 | # - This may be composed of exec arguments only--not shell code |
---|
6 | # |
---|
7 | +# startupitem.inetdsockname |
---|
8 | +# This keywork can only be used with startupitem.executable and sets the inetdCompatibility |
---|
9 | +# .plist key and specifies the xinetd socket servicename to be placed in /etc/services |
---|
10 | +# |
---|
11 | +# startupitem.inetdwait |
---|
12 | +# This optional command can only be used with startupitem.inetsocket; it corresponds |
---|
13 | +# turns on the "wait" option of services in xinetd |
---|
14 | +# |
---|
15 | # startupitem.pidfile none |
---|
16 | # There is no pidfile we can track |
---|
17 | # |
---|
18 | @@ -386,6 +394,7 @@ |
---|
19 | global startupitem.name startupitem.requires startupitem.init |
---|
20 | global startupitem.start startupitem.stop startupitem.restart startupitem.executable |
---|
21 | global startupitem.pidfile startupitem.logfile startupitem.logevents startupitem.netchange |
---|
22 | + global startupitem.inetdsockname startupitem.inetdwait |
---|
23 | |
---|
24 | set scriptdir ${prefix}/etc/startup |
---|
25 | |
---|
26 | @@ -564,7 +573,13 @@ |
---|
27 | |
---|
28 | puts ${plist} "<key>ProgramArguments</key>" |
---|
29 | puts ${plist} "<array>" |
---|
30 | - foreach arg ${args} { puts ${plist} "\t<string>${arg}</string>" } |
---|
31 | + |
---|
32 | + if { ![llength ${startupitem.inetdsockname}] } { |
---|
33 | + foreach arg ${args} { puts ${plist} "\t<string>${arg}</string>" } |
---|
34 | + } else { |
---|
35 | + puts ${plist} "<string>${startupitem.executable}</string>" |
---|
36 | + } |
---|
37 | + |
---|
38 | puts ${plist} "</array>" |
---|
39 | |
---|
40 | puts ${plist} "<key>Debug</key><false/>" |
---|
41 | @@ -576,6 +591,28 @@ |
---|
42 | puts ${plist} "<key>StandardOutPath</key><string>${startupitem.logfile}</string>" |
---|
43 | } |
---|
44 | |
---|
45 | + if { [llength ${startupitem.inetdsockname}] } { |
---|
46 | + |
---|
47 | + puts ${plist} "<key>inetdCompatibility</key>" |
---|
48 | + puts ${plist} "\t<dict>" |
---|
49 | + |
---|
50 | + if { [tbool startupitem.inetdwait] } { |
---|
51 | + puts ${plist} "\t<key>Wait</key><true/>" |
---|
52 | + } else { |
---|
53 | + puts ${plist} "\t<key>Wait</key><false/>" |
---|
54 | + } |
---|
55 | + |
---|
56 | + puts ${plist} "\t</dict>" |
---|
57 | + puts ${plist} "<key>Sockets</key>" |
---|
58 | + puts ${plist} "\t<dict>" |
---|
59 | + puts ${plist} "\t<key>Listeners</key>" |
---|
60 | + puts ${plist} "\t\t<dict>" |
---|
61 | + puts ${plist} "\t\t<key>SockServiceName</key>" |
---|
62 | + puts ${plist} "\t\t<string>${startupitem.inetdsockname}</string>" |
---|
63 | + puts ${plist} "\t\t</dict>" |
---|
64 | + puts ${plist} "\t</dict>" |
---|
65 | + } |
---|
66 | + |
---|
67 | puts ${plist} "</dict>" |
---|
68 | puts ${plist} "</plist>" |
---|
69 | |
---|