Make scripts/setup-symlinks idempotent (#1590)

`ln -fs` dereferences an existing symlink to a directory and creates the
new link *inside* it, so running the script a second time left two stray
symlinks in the working tree instead of replacing the existing ones:

    tests/tests -> ../../../tests/
    custom_components/adaptive_lighting/adaptive_lighting
        -> ../../../custom_components/adaptive_lighting

Neither path is gitignored, so `git add -A` commits them.

Add `-n` so an existing symlink is treated as a file and replaced.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Ahmad Tawakol 2026-09-08 09:02:45 -03:00 committed by GitHub
commit 3e78ac7e21
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2,12 +2,17 @@
set -ex
cd "$(dirname "$0")/.."
# '-n' keeps a re-run idempotent: without it 'ln -fs' follows an existing
# symlink and creates the new link *inside* the target directory, leaving a
# stray 'tests/tests' and 'custom_components/adaptive_lighting/adaptive_lighting'
# in the working tree.
# Link custom components
cd core/homeassistant/components/
ln -fs ../../../custom_components/adaptive_lighting adaptive_lighting
ln -fsn ../../../custom_components/adaptive_lighting adaptive_lighting
cd -
# Link tests
cd core/tests/components/
ln -fs ../../../tests/ adaptive_lighting
ln -fsn ../../../tests/ adaptive_lighting
cd -