Skip to content

Commit

Permalink
change local to run programs
Browse files Browse the repository at this point in the history
This changes the local service so that it will run programs located in
@sysconfdir@/local.d instead of the local_start and local_stop functions
from @sysconfdir@/conf.d/local.

The advantage for the user is that these programs are not part
of the openrc package, so the user does not have to worry about them
being overwritten when openrc is upgraded.

X-Gentoo-Bug: 351465
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=351465
  • Loading branch information
williamh committed Jan 20, 2011
1 parent eebb2d1 commit 10ce678
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 25 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

include Makefile.inc

SUBDIR= conf.d etc init.d man scripts sh src
SUBDIR= conf.d etc init.d local.d man scripts sh src

# Build our old net foo or not
_OLDNET_SH= case "${MKOLDNET}" in \
Expand Down
2 changes: 1 addition & 1 deletion conf.d/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
DIR= ${CONFDIR}
CONF= bootmisc fsck hostname local localmount network staticroute urandom
CONF= bootmisc fsck hostname localmount network staticroute urandom

TARGETS+= network staticroute
CLEANFILES+= network staticroute
Expand Down
18 changes: 0 additions & 18 deletions conf.d/local

This file was deleted.

28 changes: 23 additions & 5 deletions init.d/local.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.

description="Executes user commands in /etc/conf.d/local"
description="Executes user programs in @SYSCONFDIR@/local.d"

depend()
{
Expand All @@ -12,22 +12,40 @@ depend()

start()
{
ebegin "Starting local"
einfo "Starting local"

local file
for file in @SYSCONFDIR@/local.d/*.start ; do
[ -x $file ] && $file
done

if type local_start >/dev/null 2>&1; then
ewarn "@SYSCONFDIR@/conf.d/local should be removed."
ewarn "Please move the code from the local_start function"
ewarn "to scripts with an .start extension"
ewarn "in @SYSCONFDIR@/local.d"
local_start
fi

eend $? "Failed to start local"
return 0
}

stop()
{
ebegin "Stopping local"
einfo "Stopping local"

local file
for file in @SYSCONFDIR@/local.d/*.stop; do
[ -x $file ] && $file
done

if type local_start >/dev/null 2>&1; then
ewarn "@SYSCONFDIR@/conf.d/local should be removed."
ewarn "Please move the code from the local_stop function"
ewarn "to scripts with an .stop extension"
ewarn "in @SYSCONFDIR@/local.d"
local_stop
fi

eend $? "Failed to stop local"
return 0
}
6 changes: 6 additions & 0 deletions local.d/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
DIR= ${LOCALDIR}
CONF= README

MK= ../mk
include ${MK}/os.mk
include ${MK}/scripts.mk
9 changes: 9 additions & 0 deletions local.d/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This directory should contain programs or scripts which are to be run
when the local service is started or stopped.

If a file in this directory is executable and it has a .start extension,
it will be run when the local service is started. If a file is
executable and it has a .stop extension, it will be run when the local
service is stopped.

All files are processed in lexical order.
1 change: 1 addition & 0 deletions mk/sys.mk
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ PICFLAG?= -fPIC
SYSCONFDIR?= ${PREFIX}/etc
INITDIR?= ${SYSCONFDIR}/init.d
CONFDIR?= ${SYSCONFDIR}/conf.d
LOCALDIR?= ${SYSCONFDIR}/local.d

BINDIR?= ${PREFIX}/sbin
BINMODE?= 0755
Expand Down

0 comments on commit 10ce678

Please sign in to comment.