#!/bin/sh

PROGRAM="sysctl"

SYSCTL_ARGS=""

# shellcheck source=/dev/null
[ -r "/etc/default/$PROGRAM" ] && . "/etc/default/$PROGRAM"

# Files are read from directories in the SYSCTL_SOURCES list, in the given
# order. A file may be used more than once, since there can be multiple
# symlinks to it. No attempt is made to prevent this.
SYSCTL_SOURCES="/etc/sysctl.d/ /usr/local/lib/sysctl.d/ /usr/lib/sysctl.d/ /lib/sysctl.d/ /etc/sysctl.conf"

# Use some scripting to mimic the --system option of the sysctl provided by
# procps-ng but still reporting errors. Users not interested on error report
# can put "-e" in SYSCTL_ARGS.
#
# The file redirections do the following:
#
# - stdout is redirected to syslog with facility.level "kern.info"
# - stderr is redirected to syslog with facility.level "kern.err"
# - file dscriptor 4 is used to pass the result to the "start" function.
#
# Testing the sysctl exit code is fruitless, as at the moment, since it ends
# with status zero even if errors happen. Hopefully this will be fixed in a
# future version of Busybox.
#
run_program() {
	# shellcheck disable=SC2086 # we need the word splitting
	find $SYSCTL_SOURCES -maxdepth 1 -name '*.conf' -print0 2> /dev/null | \
	xargs -0 -r -n 1 readlink -f | {
		prog_status="OK"
		while :; do
			read -r file
			if [ -z "$file" ]; then
				echo "$prog_status" >&4
				break
			fi
			echo "* Applying $file ..."
			/sbin/sysctl -p "$file" $SYSCTL_ARGS || prog_status="FAIL"
		done 2>&1 >&3 | /usr/bin/logger -t sysctl -p kern.err
	} 3>&1 | /usr/bin/logger -t sysctl -p kern.info
}

start() {
	printf '%s %s: ' "$1" "$PROGRAM"
	status=$(run_program 4>&1)
	echo "$status"
	if [ "$status" = "OK" ]; then
		return 0
	fi
	return 1
}

case "$1" in
	start)
		start "Running";;
	restart|reload)
		start "Rerunning";;
	stop)
		:;;
	*)
		echo "Usage: $0 {start|stop|restart|reload}"
		exit 1
esac
