#!/bin/sh set -e find_root() { local topd if [ -z "${CLOUD_INIT_TOP_D}" ]; then topd=$(cd "$(dirname "${0}")" && cd .. && pwd) else topd=$(cd "${CLOUD_INIT_TOP_D}" && pwd) fi [ $? -eq 0 -a -f "${topd}/setup.py" ] || return ROOT_DIR="$topd" } fail() { echo "$0:" "$@" 1>&2; exit 1; } if ! find_root; then fail "Unable to locate 'setup.py' file that should " \ "exist in the cloud-init root directory." fi REQUIRES="$ROOT_DIR/requirements.txt" if [ ! -e "$REQUIRES" ]; then fail "Unable to find 'requirements.txt' file located at '$REQUIRES'" fi # Filter out comments and empty lines DEPS=$(sed -n -e 's,#.*,,' -e '/./p' "$REQUIRES") && [ -n "$DEPS" ] || fail "failed to read deps from '${REQUIRES}'" echo "$DEPS" | sort -d -f