summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-dotnet/pe-format/files/pe-format.init-1')
-rw-r--r--dev-dotnet/pe-format/files/pe-format.init-153
1 files changed, 53 insertions, 0 deletions
diff --git a/dev-dotnet/pe-format/files/pe-format.init-1 b/dev-dotnet/pe-format/files/pe-format.init-1
new file mode 100644
index 000000000000..18420db9c310
--- /dev/null
+++ b/dev-dotnet/pe-format/files/pe-format.init-1
@@ -0,0 +1,53 @@
+#!/sbin/runscript
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ after procfs
+}
+
+start() {
+ ebegin "Registering PE binaries with ${CLR}"
+
+ if [[ ! -d /proc/sys/fs/binfmt_misc ]] ; then
+ eerror "You need support for \"misc binaries\" in your kernel!"
+ eend 1
+ fi
+
+ if [[ $(mount | grep -c binfmt_misc) -eq 0 ]] ; then
+ mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc &> /dev/null
+ local result=$?
+
+ if [[ $result -ne 0 ]] ; then
+ eend $result
+ fi
+ fi
+
+ case "${CLR}" in
+ mono)
+ echo ':PE:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
+ eend 0
+ ;;
+ ilrun)
+ echo ':PE:M::MZ::/usr/bin/ilrun:' > /proc/sys/fs/binfmt_misc/register
+ eend 0
+ ;;
+ *)
+ eerror 'Please enter a valid option in /etc/conf.d/pe-format'
+ eend 1
+ ;;
+ esac
+}
+
+stop() {
+ ebegin "Unregistering PE binaries"
+
+ if [[ -f /proc/sys/fs/binfmt_misc/PE ]] ; then
+ echo '-1' > /proc/sys/fs/binfmt_misc/PE
+ fi
+
+ eend $?
+}
+
+# vim: ts=4 :