Until now ./install.sh only managed an already-installed kiosk; ubuntu-based-kiosk.sh was still the only path from a bare Ubuntu Server box to a running one. install.sh now provisions from scratch too: packages, kiosk user, Node.js/Electron, LightDM+Openbox autologin, audio/video/HDMI/power-button hardware setup, and the firewall, then hands off to the already-migrated Core Settings/Advanced menus for initial configuration instead of reimplementing that logic again. - lib/provision.sh: the new provisioning flow, built mostly by calling existing menus (core_settings_menu, emergency hotspot, virtual consoles) - cuts it to ~300 lines against the legacy script's ~4,000-line first_time_install(). - lib/electron.sh: electron_install_binary() extracted out of menus/advanced_electron.sh so provisioning and the existing "Fix blank screen" action share one implementation. - kiosk-app/ and provision/files/: the Electron app source and every system template file, extracted byte-for-byte out of ubuntu-based-kiosk.sh's heredocs into real files. - Found and fixed a bash set -e gotcha along the way: testing a multi-statement function as an if-condition (`if ! some_func; then`) silently exempts everything inside that function from set -e for the duration of the call. Fixed in the new provisioning code and in menus/advanced_electron.sh's pre-existing repair action, which had the same shape. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VfsFSoRqfbRG7XAg5RoE7e
52 lines
1.3 KiB
Bash
Executable File
52 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
echo "Testing power button configuration..."
|
|
echo
|
|
|
|
echo "1. Checking acpid service..."
|
|
if systemctl is-active --quiet acpid; then
|
|
echo " ✓ acpid is running"
|
|
else
|
|
echo " ✗ acpid is NOT running"
|
|
echo " Fix: sudo systemctl enable --now acpid"
|
|
fi
|
|
echo
|
|
|
|
echo "2. Checking ACPI event handler..."
|
|
if [ -f /etc/acpi/events/kiosk-power-button ]; then
|
|
echo " ✓ Event handler exists"
|
|
cat /etc/acpi/events/kiosk-power-button
|
|
else
|
|
echo " ✗ Event handler not found"
|
|
fi
|
|
echo
|
|
|
|
echo "3. Checking power button script..."
|
|
if [ -x /usr/local/bin/kiosk-power-button.sh ]; then
|
|
echo " ✓ Script exists and is executable"
|
|
else
|
|
echo " ✗ Script not found or not executable"
|
|
fi
|
|
echo
|
|
|
|
echo "4. Checking Electron process..."
|
|
PIDS=$(pgrep -u kiosk -f "electron" 2>/dev/null)
|
|
if [ -n "$PIDS" ]; then
|
|
echo " ✓ Found Electron PIDs: $PIDS"
|
|
else
|
|
echo " ✗ No Electron process found"
|
|
fi
|
|
echo
|
|
|
|
echo "5. Testing power button trigger NOW..."
|
|
if [ -x /usr/local/bin/kiosk-power-button.sh ]; then
|
|
echo " Running: /usr/local/bin/kiosk-power-button.sh"
|
|
/usr/local/bin/kiosk-power-button.sh
|
|
echo " Check if power menu appeared!"
|
|
else
|
|
echo " Script not found"
|
|
fi
|
|
echo
|
|
|
|
echo "6. To watch ACPI events: sudo acpi_listen"
|
|
echo " Then press power button and look for 'button/power' events"
|