DSH: run.sh чинит dsh/bundle/hooks в worktree (#56) #58
@ -4,6 +4,25 @@ set -euo pipefail
|
||||
root="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
cd "$root"
|
||||
|
||||
# `core.symlinks=false` checkouts materialize the tracked `dsh/bundle/hooks`
|
||||
# symlink as a regular file containing "../../hooks". Repair it before the
|
||||
# tests, otherwise five guard tests fail with BLOCKED instead of testing.
|
||||
ensure_bundle_hooks() {
|
||||
local link="$root/dsh/bundle/hooks"
|
||||
[ -L "$link" ] && return 0 # symlink (or a repaired one)
|
||||
[ -d "$link" ] && return 0 # published bundle: a real copy of hooks/
|
||||
if [ -f "$link" ] && [ "$(cat "$link")" = "../../hooks" ]; then
|
||||
rm -f "$link"
|
||||
ln -s ../../hooks "$link"
|
||||
echo "repaired dsh/bundle/hooks -> ../../hooks (core.symlinks=false checkout)"
|
||||
return 0
|
||||
fi
|
||||
echo "FAIL: dsh/bundle/hooks is neither a symlink to ../../hooks nor a copy of hooks/" >&2
|
||||
exit 2
|
||||
}
|
||||
|
||||
ensure_bundle_hooks
|
||||
|
||||
for f in dsh/bundle/index.js dsh/bundle/command-role.js dsh/bundle/lib/*.js dsh/tests/*.mjs; do
|
||||
node --check "$f"
|
||||
done
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user