mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
Previously devtools used a nested workspace for its bazel configurations. This meant framework dependencies were consumed via npm. Now devtools is part of the root bazel directory that all other files in this codebase fall under. This allows us to build devtools using local angular packages, removing the need to consume these dependencies with npn. This is useful because we no longer have to update these dependencies with an automated tool like renovate, and our CI tests will always run against the most up to date framework packages.
33 lines
1.8 KiB
Bash
33 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
# --- begin runfiles.bash initialization v2 ---
|
|
# Copy-pasted from the Bazel Bash runfiles library v2. We need to copy the runfile
|
|
# helper code as we want to resolve Bazel targets through the runfiles (in order to
|
|
# make the dev-server work on windows where runfiles are not symlinked). The runfile
|
|
# helpers expose a bash function called "rlocation" that can be used to resolve targets.
|
|
set -uo pipefail; f=bazel_tools/tools/bash/runfiles/runfiles.bash
|
|
source "${RUNFILES_DIR:-/dev/null}/$f" 2>/dev/null || \
|
|
source "$(grep -sm1 "^$f " "${RUNFILES_MANIFEST_FILE:-/dev/null}" | cut -f2- -d' ')" 2>/dev/null || \
|
|
source "$0.runfiles/$f" 2>/dev/null || \
|
|
source "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \
|
|
source "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \
|
|
{ echo>&2 "ERROR: cannot find $f"; exit 1; }; f=; set -e
|
|
# --- end runfiles.bash initialization v2 ---
|
|
|
|
# If we do not run the devserver as part of a test, we always enforce runfile
|
|
# resolution when invoking the devserver NodeJS binary. This is necessary as
|
|
# runfile trees are disabled as part of this repository. The devserver NodeJS
|
|
# binary would not find a relative runfile tree directory and error out.
|
|
if [[ -z "${TEST_SRCDIR:-""}" ]]; then
|
|
export RUNFILES_MANIFEST_ONLY="1"
|
|
fi
|
|
|
|
# Resolve the path of the dev-server binary. Note: usually we either need to
|
|
# resolve the "nodejs_binary" executable with different file extensions on
|
|
# windows, but since we already run this launcher as part of a "sh_binary", we
|
|
# can safely execute another shell script from the current shell.
|
|
devserverBin=$(rlocation "angular/devtools/tools/dev-server/dev-server_bin.sh")
|
|
|
|
# Start the devserver with the given arguments. The arguments will be
|
|
# substituted based on the rule attributes.
|
|
${devserverBin} TEMPLATED_args "$@"
|