Harden Panama launcher actions
This commit is contained in:
@@ -4,6 +4,8 @@ set -euo pipefail
|
||||
|
||||
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
installer="$repo_dir/setup/scripts/link-vicinae-scripts"
|
||||
dotfile_installer="$repo_dir/setup/scripts/link-dotfiles"
|
||||
top_level_installer="$repo_dir/install"
|
||||
work="$(mktemp -d /tmp/panama-command-install.XXXXXX)"
|
||||
data_dir="$work/share/vicinae"
|
||||
fake_bin="$work/bin"
|
||||
@@ -20,6 +22,11 @@ cleanup() {
|
||||
trap cleanup EXIT
|
||||
|
||||
[[ -x "$installer" ]] || fail 'Vicinae script installer is missing or not executable'
|
||||
if rg -q 'setup/scripts/link-vicinae-scripts' "$dotfile_installer"; then
|
||||
fail 'link-dotfiles also invokes the command installer'
|
||||
fi
|
||||
rg -Fq 'do "$script"; done' "$top_level_installer" \
|
||||
|| fail 'top-level installer sources setup scripts into one shared shell'
|
||||
|
||||
mkdir -p "$data_dir/scripts/panama" "$fake_bin"
|
||||
printf 'user-owned\n' >"$data_dir/scripts/panama/keep.sh"
|
||||
@@ -37,12 +44,14 @@ PATH="$fake_bin:$PATH" PANAMA_PATH="$repo_dir" VICINAE_DATA_DIR="$data_dir" \
|
||||
PANAMA_VICINAE_TEST_LOG="$vicinae_log" "$installer" >/dev/null
|
||||
|
||||
target="$data_dir/scripts/panama"
|
||||
backup="$data_dir/scripts/panama.pre-panama"
|
||||
backup="$data_dir/backups/panama.pre-panama"
|
||||
[[ -L "$target" ]] || fail 'Panama command directory was not linked'
|
||||
[[ "$(readlink -f "$target")" == "$(readlink -f "$repo_dir/config/local/share/vicinae/scripts")" ]] \
|
||||
|| fail 'runtime command link points outside the tracked source'
|
||||
[[ -f "$backup/keep.sh" ]] || fail 'pre-existing user command directory was not preserved'
|
||||
[[ "$(cat "$backup/keep.sh")" == user-owned ]] || fail 'preserved user command changed'
|
||||
[[ ! -e "$data_dir/scripts/panama.pre-panama" ]] \
|
||||
|| fail 'preserved commands remained inside Vicinae search paths'
|
||||
|
||||
expected_calls=$'vicinae <ping>\nvicinae <cmd> <launch> <core:reload-scripts>'
|
||||
[[ "$(cat "$vicinae_log")" == "$expected_calls" ]] \
|
||||
@@ -55,7 +64,7 @@ PATH="$fake_bin:$PATH" PANAMA_PATH="$repo_dir" VICINAE_DATA_DIR="$data_dir" \
|
||||
PANAMA_VICINAE_TEST_LOG="$vicinae_log" "$installer" >/dev/null
|
||||
[[ -L "$target" ]] || fail 'second install did not leave the command link intact'
|
||||
[[ -f "$backup/keep.sh" ]] || fail 'second install disturbed the original backup'
|
||||
[[ ! -e "$data_dir/scripts/panama.pre-panama.pre-panama" ]] \
|
||||
[[ ! -e "$data_dir/backups/panama.pre-panama.pre-panama" ]] \
|
||||
|| fail 'second install created a duplicate backup'
|
||||
|
||||
printf 'Panama command install contract: PASS\n'
|
||||
|
||||
Reference in New Issue
Block a user