diff options
author | Rob Austein <sra@hactrn.net> | 2013-02-25 03:58:36 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2013-02-25 03:58:36 +0000 |
commit | d2bb943731ec492941e367fc9c399a1c9fd89e11 (patch) | |
tree | a9be1eba3ac2748649a0c78333c9b4165e70e745 /rcynic/rc-scripts | |
parent | b033927cf90652a52ce2d71d95a4572527602d8f (diff) | |
parent | 10408f676d398b1961d24daf360d42f79b8ecfc5 (diff) |
Merge platform-specific packaging changes back to trunk. Closes #377,
#374, #395, #398. Also see #373, which ended up not being covered by
this branch after all.
svn path=/trunk/; revision=5065
Diffstat (limited to 'rcynic/rc-scripts')
-rwxr-xr-x | rcynic/rc-scripts/darwin/RCynic | 42 | ||||
-rw-r--r-- | rcynic/rc-scripts/darwin/StartupParameters.plist | 19 | ||||
-rwxr-xr-x | rcynic/rc-scripts/freebsd/rc.d.rcynic | 44 |
3 files changed, 105 insertions, 0 deletions
diff --git a/rcynic/rc-scripts/darwin/RCynic b/rcynic/rc-scripts/darwin/RCynic new file mode 100755 index 00000000..d486a3c3 --- /dev/null +++ b/rcynic/rc-scripts/darwin/RCynic @@ -0,0 +1,42 @@ +#!/bin/sh - +# +# $Id$ +# +. /etc/rc.common + +name="rcynic" +start_cmd="rcynic_start" +stop_cmd="rcynic_stop" + +: ${rcynic_dir="/var/rcynic"} + +StartService() +{ + /sbin/umount "${rcynic_dir}/dev" 2>/dev/null + + if ! /sbin/mount_devfs devfs "${rcynic_dir}/dev"; then + echo "Mounting devfs on ${rcynic_dir}/dev failed..." + exit 1 + fi + + for i in /etc/localtime /etc/resolv.conf; do + j="${rcynic_dir}${i}" + if /bin/test -r "$i" && ! /usr/bin/cmp -s "$i" "$j"; then + /usr/bin/install -m 444 -o root -g wheel -p "$i" "$j" + fi + done + + /bin/ln -f /var/run/mDNSResponder "${rcynic_dir}/var/run/mDNSResponder" +} + +StopService() +{ + /sbin/umount "${rcynic_dir}/dev" 2>/dev/null +} + +RestartService() +{ + StartService +} + +RunService "$1" diff --git a/rcynic/rc-scripts/darwin/StartupParameters.plist b/rcynic/rc-scripts/darwin/StartupParameters.plist new file mode 100644 index 00000000..ca46b676 --- /dev/null +++ b/rcynic/rc-scripts/darwin/StartupParameters.plist @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Description</key> + <string>RCynic Setup</string> + <key>OrderPreference</key> + <string>None</string> + <key>Provides</key> + <array> + <string>RCynic</string> + </array> + <key>Uses</key> + <array> + <string>Network</string> + <string>Resolver</string> + </array> + </dict> +</plist> diff --git a/rcynic/rc-scripts/freebsd/rc.d.rcynic b/rcynic/rc-scripts/freebsd/rc.d.rcynic new file mode 100755 index 00000000..9b7aa545 --- /dev/null +++ b/rcynic/rc-scripts/freebsd/rc.d.rcynic @@ -0,0 +1,44 @@ +#!/bin/sh - +# +# $Id$ +# +# PROVIDE: rcynic +# REQUIRE: DAEMON +# KEYWORD: nojail + +. /etc/rc.subr + +name="rcynic" +start_cmd="rcynic_start" +stop_cmd="rcynic_stop" + +: ${rcynic_dir="/var/rcynic"} + +rcynic_start() +{ + /sbin/umount "${rcynic_dir}/dev" 2>/dev/null + + if ! /sbin/mount -t devfs dev "${rcynic_dir}/dev"; then + echo "Mounting devfs on ${rcynic_dir}/dev failed..." + exit 1 + fi + + /sbin/devfs -m "${rcynic_dir}/dev" rule apply hide + /sbin/devfs -m "${rcynic_dir}/dev" rule apply path null unhide + /sbin/devfs -m "${rcynic_dir}/dev" rule apply path random unhide + + for i in /etc/localtime /etc/resolv.conf; do + j="${rcynic_dir}${i}" + if /bin/test -r "$i" && ! /usr/bin/cmp -s "$i" "$j"; then + /usr/bin/install -m 444 -o root -g wheel -p "$i" "$j" + fi + done +} + +rcynic_stop() +{ + /sbin/umount "${rcynic_dir}/dev" 2>/dev/null +} + +load_rc_config $name +run_rc_command "$1" |