diff options
Diffstat (limited to 'dev-dotnet/pe-format/files')
-rw-r--r-- | dev-dotnet/pe-format/files/pe-format.conf | 11 | ||||
-rw-r--r-- | dev-dotnet/pe-format/files/pe-format.init-1 | 53 |
2 files changed, 64 insertions, 0 deletions
diff --git a/dev-dotnet/pe-format/files/pe-format.conf b/dev-dotnet/pe-format/files/pe-format.conf new file mode 100644 index 000000000000..b432728b0869 --- /dev/null +++ b/dev-dotnet/pe-format/files/pe-format.conf @@ -0,0 +1,11 @@ +# /etc/conf.d/pe-format + +# Define what to register with PE binaries so you can avoid running them with +# "<.NET runtime> program.exe" +# NOTE: In order to get this working you need to 'chmod +x' your program + +# CLR determines the executor for the PE binaries. +# mono - Use the mono runtime engine 'mono' +# ilrun - Use the DotGNU Portable .NET runtime engine 'ilrun' + +CLR="mono" 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 : |