blob: dbd350b35488a49356847918907b43786f7f9665 [file] [log] [blame]
#!/usr/bin/env bash
set -eu -o pipefail
# -e: exits if a command fails
# -u: errors if an variable is referenced before being set
# -o pipefail: causes a pipeline to produce a failure return code if any command errors
readonly RULES_NODEJS_DIR=$(cd $(dirname "$0")/..; pwd)
source "${RULES_NODEJS_DIR}/scripts/packages.sh"
DEPS=()
# Check for WORKSPACE dependency on release dist
LINES=$(grep "/dist/build_bazel_rules_nodejs/release\"" WORKSPACE || echo "")
if [[ "${LINES}" ]] ; then
DEPS+=(release)
fi
# Check for file:../../dist/npm_bazel_foobar dependencies in package.json
LINES=$(egrep -oh "file:../../dist/npm_bazel_([a-z_\-]+)" package.json || echo "")
for line in ${LINES[@]} ; do
# Trim the match from `file:../../dist/npm_bazel_foobar` to `foobar`
DEP=$(echo $line | cut -c 27-)
DEPS+=(${DEP})
done
if [[ ${DEPS:-} ]] ; then
ALL_GOOD=1
echo "checking deps: ${DEPS}"
for dep in ${DEPS} ; do
if [[ ${dep} == "release" ]] ; then
if [[ ! -d "${RULES_NODEJS_DIR}/dist/build_bazel_rules_nodejs" ]] ; then
echo "ERROR: You must first run 'yarn build_release' to build /dist/build_bazel_rules_nodejs";
ALL_GOOD=0
fi
else
if [[ ! -d "${RULES_NODEJS_DIR}/dist/npm_bazel_${dep}" ]] ; then
echo "ERROR: You must first run 'yarn build_packages ${dep}' or 'yarn build_packages_all'";
ALL_GOOD=0
fi
fi
done
if [[ ${ALL_GOOD} -eq "0" ]] ; then
echo "ERROR: Some dependencies are not built. Please build all dependencies and try again."
exit 1
else
echo "all deps built"
fi
fi