mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-11-13 12:23:38 +01:00
The scripts were written for a KDE-only repository root (komorebi-for-kde/, scripts/ one level below it). They now live in scripts/linux/ of the consolidated repository: - run-kde looks for the repository two directories above itself (flake.nix at the root) and no longer knows the komorebi-for-kde/ subdirectory; its comments name nix/linux and docs/linux - vm-mac cd`s two levels up, usage and comments name scripts/linux/vm-mac - sync-e2e-core and scenario-status read nix/linux/tests/vm/lib, and usage lines name the new paths (scenario-status resolves the library with parents[2]) - wsl2-probe.sh names docs/linux/dev/wsl2-probe.md and prints "komorebi (KDE Plasma)" instead of komorebi-for-kde in its report header - compare-gen.py is stale by design: the docstring now says so a second time (layout) and names the new path of COMPARE.md; the logic is not repaired Flake attribute names the scripts call (nix run .#run-kde, .#wsl2-probe, legacyPackages.*.vm.NAME in vm-mac) are left for the one-flake revision. Verified: bash -n and shellcheck -S warning pass on the four shell scripts; the two Python scripts parse (ast); `bash run-kde --dry-run` run from /tmp prints KOMOREBI_REPO as this checkout; `sync-e2e-core --check e2e/lib` prints "in step"; `scenario-status --help` runs. Not run: the VM, vm-mac, wsl2-probe.
59 lines
2.3 KiB
Bash
Executable File
59 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Checks that the copy of the platform-neutral part of the VM library in this tree is in step with
|
|
# the root e2e/lib of this repository (the plan in docs/linux/dev/vm-tests.md, "Writing a
|
|
# scenario"): the package komorebi_vm.core, and the unit tests that belong to it. The SOURCE OF TRUTH
|
|
# IS THE ROOT e2e/lib, where the core is on its way to the Windows tree, and this tree's copy follows
|
|
# it. The script goes away once the root flake builds the KDE VM tests from e2e/lib; until then the
|
|
# KDE flake could not reach ../ of its own tree, so the copy stays.
|
|
#
|
|
# scripts/linux/sync-e2e-core --check e2e/lib say what differs, and exit 1 if anything does
|
|
# scripts/linux/sync-e2e-core DEST copy THIS tree's core into DEST/komorebi_vm/core,
|
|
# DEST/tests and DEST/tests/fixtures. That is the direction
|
|
# from before the move: the root is the source now, so
|
|
# do not point it at e2e/lib; copy the other way by hand.
|
|
#
|
|
# Nothing else of DEST is touched, and a file of DEST that is not here is reported and left alone.
|
|
set -euo pipefail
|
|
|
|
check=0
|
|
if [ "${1:-}" = --check ]; then
|
|
check=1
|
|
shift
|
|
fi
|
|
dest=${1:?usage: sync-e2e-core [--check] DEST}
|
|
repo=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)
|
|
lib=$repo/nix/linux/tests/vm/lib
|
|
|
|
tests=(fake_platform.py fake_strip.py fake_wallpaper.py test_checks.py test_suite.py test_pixels.py test_snapshot.py test_recorded.py test_tiling.py
|
|
test_focus_moving.py)
|
|
|
|
status=0
|
|
sync() {
|
|
local from=$1 to=$2
|
|
if [ "$check" = 1 ]; then
|
|
diff -r -x __pycache__ "$from" "$to" >/dev/null 2>&1 || { echo "differs: $to"; status=1; }
|
|
else
|
|
mkdir -p "$to"
|
|
rsync -a --delete --exclude __pycache__ "$from"/ "$to"/
|
|
fi
|
|
}
|
|
|
|
sync "$lib/komorebi_vm/core" "$dest/komorebi_vm/core"
|
|
sync "$lib/tests/fixtures" "$dest/tests/fixtures"
|
|
|
|
for t in "${tests[@]}"; do
|
|
if [ "$check" = 1 ]; then
|
|
cmp -s "$lib/tests/$t" "$dest/tests/$t" || { echo "differs: $dest/tests/$t"; status=1; }
|
|
else
|
|
mkdir -p "$dest/tests"
|
|
cp "$lib/tests/$t" "$dest/tests/$t"
|
|
fi
|
|
done
|
|
|
|
if [ "$check" = 0 ]; then
|
|
echo "synced komorebi_vm/core and ${#tests[@]} tests into $dest"
|
|
else
|
|
[ "$status" = 0 ] && echo "in step"
|
|
fi
|
|
exit "$status"
|