Say "CoreDesktop is installed." at the end of every install
shellcheck / shellcheck (push) Failing after 17s

When configure had nothing left to do, install.sh ended on the kernel check
and the firewall's warnings just above it, so a successful run could be taken
for a failure. Move the end of install.sh to system/finish-install.sh, which
now says the install worked before the reboot advice and configure offer, and
test it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-10 06:51:10 -07:00
co-authored by Claude Opus 5.5
parent 43e227e3f3
commit 1507ae925e
3 changed files with 110 additions and 26 deletions
+71
View File
@@ -0,0 +1,71 @@
#!/usr/bin/env bats
load test_helper
# system/finish-install.sh with a fake uname and configure. The kernel is up to
# date unless a test says otherwise: uname reports a kernel whose modules exist.
setup() {
common_setup
KERNEL="$(ls /usr/lib/modules 2> /dev/null | head -n 1)"
export KERNEL
stub uname 'echo "$KERNEL"'
# configure --list prints $ITEMS; configure itself logs that it ran
export ITEMS="done core Federated Core"
mkdir -p "$HOME/.local/bin"
cat > "$HOME/.local/bin/configure" << 'STUB'
#!/bin/bash
echo "configure${*:+ $*}" >> "$STUB_LOG"
[ "$1" = --list ] && printf '%s\n' "$ITEMS"
exit 0
STUB
chmod +x "$HOME/.local/bin/configure"
# No terminal unless a test gives answers
export COREDESKTOP_TTY="$BATS_TEST_TMPDIR/no-tty/tty"
}
needs_modules() {
[ -n "$KERNEL" ] || skip "needs a kernel in /usr/lib/modules"
}
answer() {
export COREDESKTOP_TTY="$BATS_TEST_TMPDIR/answer"
echo "$1" > "$COREDESKTOP_TTY"
}
@test "finish-install says the install worked when nothing is left to do" {
needs_modules
run bash "$REPO/system/finish-install.sh"
[ "$status" -eq 0 ]
[[ "$output" == *"CoreDesktop is installed."* ]]
[[ "$output" == *"no reboot needed"* ]]
[[ "$output" != *"configure connects"* ]]
uncalled configure
}
@test "finish-install says the install worked, then asks for a reboot after a new kernel" {
KERNEL=0.0.0-not-installed
run bash "$REPO/system/finish-install.sh"
[ "$status" -eq 0 ]
[[ "$output" == *"CoreDesktop is installed."*"Reboot, then run: configure"* ]]
not_called configure
}
@test "finish-install says the install worked before offering configure" {
needs_modules
ITEMS="to do core Federated Core"
run bash "$REPO/system/finish-install.sh"
[ "$status" -eq 0 ]
[[ "$output" == *"CoreDesktop is installed."*"configure connects"*"To do it later, run: configure"* ]]
uncalled configure
}
@test "finish-install runs configure when asked" {
needs_modules
ITEMS="to do core Federated Core"
answer y
run bash "$REPO/system/finish-install.sh"
[ "$status" -eq 0 ]
[[ "$output" == *"CoreDesktop is installed."* ]]
called configure
}