Merge "Add init-scripts directory support"

This commit is contained in:
Jenkins 2015-07-28 18:43:46 +00:00 committed by Gerrit Code Review
commit 9ac258f028
2 changed files with 40 additions and 1 deletions

View File

@ -2,4 +2,17 @@
dib-init-system
===============
A simple element that provides a script to tell what the init system is.
Installs a script (dib-init-system) which outputs the type of init system in
use on the target image. Also sets an environment variable ``DIB_INIT_SYSTEM``
to this value.
Any files placed in a ``init-scripts/INIT_SYSTEM`` directory inside the
element will be copied into the appropriate directory if ``INIT_SYSTEM``
is in use on the host.
Environment Variables
---------------------
DIB_INIT_SYSTEM
:Description: One of upstart, systemd, or sysv depending on the init system
in use for the target image.

View File

@ -0,0 +1,26 @@
#!/bin/bash
# Note that this relies on the detail that all elements share one dir inside
# the chroot. This will copy all the files that elements have added to
# element/static into the image. Mode, symlinks etc will be respected.
if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then
set -x
fi
set -eu
set -o pipefail
scripts_dir="$(dirname $0)../init-scripts/$DIB_INIT_SYSTEM/"
if [ -d "$scripts_dir" ]; then
dest=
case $DIB_INIT_SYSTEM in
upstart) dest=/etc/init/ ;;
systemd) dest=/usr/lib/systemd/system/ ;;
sysv) dest=/etc/init.d/ ;;
esac
if [ -z "$dest" ]; then
echo "ERROR: DIB_INIT_SYSTEM ($DIB_INIT_SYSTEM) is not an unknown type"
exit 1
fi
rsync -lCr "$scripts_dir" $dest
fi