From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 49992138330 for ; Thu, 25 Aug 2016 17:12:30 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 6D0AAE099D; Thu, 25 Aug 2016 17:12:27 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id EA651E099D for ; Thu, 25 Aug 2016 17:12:26 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 51B3134081F for ; Thu, 25 Aug 2016 17:12:25 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 9E26C2460 for ; Thu, 25 Aug 2016 17:12:22 +0000 (UTC) From: "William Hubbs" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "William Hubbs" Message-ID: <1472144924.556dbff99d53cdcc00e6b1ec67e1679f72b6f284.williamh@OpenRC> Subject: [gentoo-commits] proj/openrc:master commit in: init.d/ X-VCS-Repository: proj/openrc X-VCS-Files: init.d/Makefile init.d/modules-load.in init.d/modules.in X-VCS-Directories: init.d/ X-VCS-Committer: williamh X-VCS-Committer-Name: William Hubbs X-VCS-Revision: 556dbff99d53cdcc00e6b1ec67e1679f72b6f284 X-VCS-Branch: master Date: Thu, 25 Aug 2016 17:12:22 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 6e88bb44-41ba-437d-87e0-2b3559944425 X-Archives-Hash: 00acf45c9ae44d537b6a57493c4c4644 commit: 556dbff99d53cdcc00e6b1ec67e1679f72b6f284 Author: William Hubbs gmail com> AuthorDate: Tue Aug 23 22:48:39 2016 +0000 Commit: William Hubbs gentoo org> CommitDate: Thu Aug 25 17:08:44 2016 +0000 URL: https://gitweb.gentoo.org/proj/openrc.git/commit/?id=556dbff9 Add modules-load.d support init.d/Makefile | 4 +-- init.d/modules-load.in | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ init.d/modules.in | 1 + 3 files changed, 76 insertions(+), 2 deletions(-) diff --git a/init.d/Makefile b/init.d/Makefile index a1d2ec7..8eb62e4 100644 --- a/init.d/Makefile +++ b/init.d/Makefile @@ -20,10 +20,10 @@ SRCS-FreeBSD= hostid.in modules.in moused.in newsyslog.in pf.in rarpd.in \ rc-enabled.in rpcbind.in savecore.in syslogd.in # These are FreeBSD specific SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \ - mixer.in nscd.in powerd.in syscons.in + modules.in modules-load.in mixer.in nscd.in powerd.in syscons.in SRCS-Linux= binfmt.in devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \ - killprocs.in modules.in mount-ro.in mtab.in numlock.in \ + killprocs.in modules.in modules-load.in mount-ro.in mtab.in numlock.in \ procfs.in net-online.in sysfs.in termencoding.in tmpfiles.dev.in # Generic BSD scripts diff --git a/init.d/modules-load.in b/init.d/modules-load.in new file mode 100644 index 0000000..8c19a36 --- /dev/null +++ b/init.d/modules-load.in @@ -0,0 +1,73 @@ +#!@SBINDIR@/openrc-run +# Copyright (c) 2016 The OpenRC Authors. +# See the Authors file at the top-level directory of this distribution and +# https://github.com/OpenRC/openrc/blob/master/AUTHORS +# +# This file is part of OpenRC. It is subject to the license terms in +# the LICENSE file found in the top-level directory of this +# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE +# This file may not be copied, modified, propagated, or distributed +# except according to the terms contained in the LICENSE file. + +description="Loads a list of modules from systemd-compatible locations." + +depend() +{ + keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver +} + +modules_dirs="/usr/lib/modules-load.d /run/modules-load.d /etc/modules-load.d" + +find_modfiles() +{ + local basenames files x y + for x in $modules_dirs; do + [ ! -d $x ] && continue + for y in $x/*.conf; do + [ -f $y ] && basenames="${basenames}\n${y##*/}" + done + done + basenames=$(printf "$basenames" | sort -u) + for x in $basenames; do + for y in $modules_dirs; do + [ -r $y/$x ] && + path=$y/$x + done + files="$files $path" + done + echo $files +} + +load_modules() +{ + local file m modules rc x + file=$1 + [ -z "$file" ] && return 0 + while read m x; do + case $m in + \;) continue ;; + \#) continue ;; + *) modules="$modules $m" + ;; + esac + done < $file + for x in $modules; do + ebegin "Loading module $x" + case "$RC_UNAME" in + FreeBSD) kldload "$x"; rc=$? ;; + linux) modprobe -q "$x"; rc=$? ;; + *) ;; + esac + eend $rc "Failed to load $x" + done +} + +start() +{ + local x + files=$(find_modfiles) + for x in $files; do + load_modules $x + done + return 0 +} diff --git a/init.d/modules.in b/init.d/modules.in index 5bfae6d..2568f73 100644 --- a/init.d/modules.in +++ b/init.d/modules.in @@ -14,6 +14,7 @@ description="Loads a user defined list of kernel modules." depend() { use isapnp + want modules-load keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver }