aboutsummaryrefslogtreecommitdiff
path: root/rcynic/installation-scripts/darwin/RCynic
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2011-01-25 05:19:14 +0000
committerRob Austein <sra@hactrn.net>2011-01-25 05:19:14 +0000
commit129913e55ff3ccd48d7fa68e24b11f2370f63f70 (patch)
tree7be6983863d16edfdb4c8cdf16bfae54b3dca90b /rcynic/installation-scripts/darwin/RCynic
parentaf363c36d18a73cf88ef4f95acaabd6c6745d54e (diff)
Minimally-tested rcynic installation for Mac OS X
svn path=/rcynic/Makefile.in; revision=3660
Diffstat (limited to 'rcynic/installation-scripts/darwin/RCynic')
-rwxr-xr-xrcynic/installation-scripts/darwin/RCynic/RCynic73
-rw-r--r--rcynic/installation-scripts/darwin/RCynic/StartupParameters.plist19
2 files changed, 92 insertions, 0 deletions
diff --git a/rcynic/installation-scripts/darwin/RCynic/RCynic b/rcynic/installation-scripts/darwin/RCynic/RCynic
new file mode 100755
index 00000000..8d77e549
--- /dev/null
+++ b/rcynic/installation-scripts/darwin/RCynic/RCynic
@@ -0,0 +1,73 @@
+#!/bin/sh -
+#
+# $Id$
+#
+. /etc/rc.common
+
+name="rcynic"
+start_cmd="rcynic_start"
+stop_cmd="rcynic_stop"
+
+: ${rcynic_jaildir="/var/rcynic"}
+: ${rcynic_user="rcynic"}
+: ${rcynic_group="rcynic"}
+
+StartService()
+{
+ /bin/test -d "${rcynic_jaildir}" || /bin/mkdir "${rcynic_jaildir}"
+ /sbin/umount "${rcynic_jaildir}/dev" 2>/dev/null
+
+ /usr/sbin/mtree -deU -p "${rcynic_jaildir}" <<EOF
+
+ /set type=dir uname=root gname=wheel mode=0555
+ .
+ bin
+ ..
+ dev
+ ..
+ etc
+ trust-anchors
+ ..
+ ..
+ usr
+ lib
+ system
+ ..
+ ..
+ ..
+ var
+ run
+ ..
+ ..
+ data uname=${rcynic_user} gname=${rcynic_group} mode=0755
+ ..
+ ..
+EOF
+
+ /bin/chmod -R a-w "${rcynic_jaildir}/bin" "${rcynic_jaildir}/etc"
+ /usr/sbin/chown -R root:wheel "${rcynic_jaildir}/bin" "${rcynic_jaildir}/etc"
+
+ if ! /sbin/mount_devfs devfs "${rcynic_jaildir}/dev"; then
+ echo "Mounting devfs on ${rcynic_jaildir}/dev failed..."
+ exit 1
+ fi
+
+ for i in /etc/localtime /etc/resolv.conf; do
+ j="${rcynic_jaildir}${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
+}
+
+StopService()
+{
+ /sbin/umount "${rcynic_jaildir}/dev" 2>/dev/null
+}
+
+RestartService()
+{
+ StartService
+}
+
+RunService "$1"
diff --git a/rcynic/installation-scripts/darwin/RCynic/StartupParameters.plist b/rcynic/installation-scripts/darwin/RCynic/StartupParameters.plist
new file mode 100644
index 00000000..ca46b676
--- /dev/null
+++ b/rcynic/installation-scripts/darwin/RCynic/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>