diskimage-builder/elements/ramdisk/post-install.d/01-ensure-binaries
Ben Nemec 16be6d7ce0 set -u and -o pipefail everywhere
As with the previous similar changes, this is intended to catch
problems as they happen instead of ignoring them and continuing on
to potentially fail later.  Setting this on all existing scripts
will allow us to enforce use via Jenkins.

Change-Id: Iad2d490c86dceab148ea9ab08f457c49a5d5352e
2014-05-06 15:51:07 -05:00

46 lines
974 B
Bash
Executable File

#!/bin/bash
# Ensure that all binaries listed in ramdisk elements, exist
set -eux
set -o pipefail
export TARGET_DIR="/tmp/in_target.d/"
if [ -z $TARGET_DIR ] ; then
echo "Target dir not specified"
exit 1
fi
if [ ! -d $TARGET_DIR ] ; then
echo "Unable to find specified directory in target: $TARGET_DIR"
bash
exit 1
fi
BINARY_DEPS=
for _FILE in $(ls ${TARGET_DIR}/binary-deps.d/) ; do
_FILE="${TARGET_DIR}/binary-deps.d/${_FILE}"
if [ -a $_FILE ]; then
for _LINE in $(cat $_FILE) ; do
BINARY_DEPS="${BINARY_DEPS} $_LINE"
done
fi
done
for _BIN in $BINARY_DEPS ; do
_LOCATION=$(which "$_BIN" || echo "")
if [ -z "$_LOCATION" ]; then
echo "$_BIN is not found in PATH. Please ensure your elements install it"
exit 1
fi
done
if [ "$BINARY_DEPS" == "" ]; then
echo "No binary-deps found"
else
DEPS_OUTPUT="/etc/dib_binary_deps"
echo "Creating binary_deps record at: ${DEPS_OUTPUT}"
echo "$BINARY_DEPS" >${DEPS_OUTPUT}
fi