Package the portable DSH profiles, local plugins, desktop integration, Firefox wrapper, and ownership-aware installer lifecycle. Bundle checksum-pinned OpenVSCode, editor extensions, translation assets, and cloudflared so unreliable upstream artifact downloads cannot break a clean installation.
28 lines
1.6 KiB
Bash
Executable file
28 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
repository_directory=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
|
|
test_home=$(mktemp -d)
|
|
trap 'rm -rf "$test_home"' EXIT
|
|
profile_directory="$test_home/profile"
|
|
extensions_directory="$test_home/extensions"
|
|
diff_directory="$profile_directory/node_modules/@dsh-external/dsh-diff-viewer"
|
|
branch_directory="$extensions_directory/codexdebayan.branch-compare-1.4.5-universal"
|
|
mkdir -p "$diff_directory/src/client" "$diff_directory/lib" "$branch_directory/dist/git"
|
|
printf "%s\n" "import { MutationRow } from './mutation-row.tsx'" > "$diff_directory/src/client/index.tsx"
|
|
printf '\t\texports.apply = apply;\n\t\texports.inject = inject;\n' > "$diff_directory/lib/client.js"
|
|
printf "%s\n" "const result = await this.execGit(['diff', '--name-status', baseBranch, targetBranch]);" > "$branch_directory/dist/git/GitService.js"
|
|
|
|
for _ in 1 2; do
|
|
HOME="$test_home" DSH_PROFILE_DIRECTORY="$profile_directory" DSH_EDITOR_EXTENSIONS_DIRECTORY="$extensions_directory" \
|
|
node "$repository_directory/scripts/apply-compatibility-patches.mjs"
|
|
done
|
|
|
|
grep -q "export { DiffViewer }" "$diff_directory/src/client/index.tsx"
|
|
grep -q 'exports.DiffViewer = DiffViewer' "$diff_directory/lib/client.js"
|
|
grep -q "targetBranch, '--'" "$branch_directory/dist/git/GitService.js"
|
|
[[ $(grep -c "export { DiffViewer }" "$diff_directory/src/client/index.tsx") == 1 ]]
|
|
[[ $(grep -c 'exports.DiffViewer = DiffViewer' "$diff_directory/lib/client.js") == 1 ]]
|
|
[[ $(grep -c "targetBranch, '--'" "$branch_directory/dist/git/GitService.js") == 1 ]]
|
|
|
|
printf 'compatibility patch test passed\n'
|