2e82d7f214
Adds conflict checking to the sysctl-write-value script to detect settings from multiple elements conflicting. Change-Id: If312d199388036d6f4103e94dca99249cb3bcbaf
44 lines
995 B
Bash
Executable File
44 lines
995 B
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copied from tripleo-image-element's sysctl element
|
|
#
|
|
# Validate and manage setting sysctl settings.
|
|
#
|
|
# The script is called with name/value pairs which are stored
|
|
# in the system default sysctl.d directory. This script performs
|
|
# no checking, just writing out the file.
|
|
|
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
|
set -x
|
|
fi
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
NAME=${1:-}
|
|
VALUE=${2:-}
|
|
# Optional comment used to describe the setting
|
|
COMMENT=${3:-"This file was created by diskimage-builder."}
|
|
|
|
if [ -z "$NAME" -o -z "$VALUE" ]; then
|
|
echo "Usage: sysctl-write-value <name> <value> [comment]"
|
|
exit 1
|
|
fi
|
|
|
|
FILENAME="/etc/sysctl.d/${NAME}.conf"
|
|
|
|
if [ -f $FILENAME ]; then
|
|
# check to make sure the settings match... otherwise fail
|
|
if ! grep -q "^$NAME = $VALUE" $FILENAME; then
|
|
echo "Conflicting sysctl.conf setting for $NAME == $VALUE. Found:"
|
|
grep "^$NAME" $FILENAME
|
|
exit 1
|
|
fi
|
|
else
|
|
|
|
cat > $FILENAME <<EOF_CAT
|
|
# $COMMENT
|
|
$NAME = $VALUE
|
|
EOF_CAT
|
|
|
|
fi
|