dd28314ba2
This incorprates the debug-shell functionality directly into the initramfs, so it's no longer necessary to build and boot a custom initramfs in order to debug your device. Additionally, the behaviour of the debug-shell is entirely reworked, It now creates an ACM serial gadget which can be accessed via any normal terminal emulator (picocom, minicom, etc; or PuTTY on windows). Rather than just invoking sh, the debug-shell now creates a respawning getty on both the new virtual console and the active console (this will either be the UART console or tty0/1). It is necessary to spawn these shells via getty since the logging rework means we can no longer assume that stdin/out/err reference a TTY. In addition to the above, it is now possible to trigger a log dump by holding volume up during boot. This can be useful for helping users debug their devices if the issue doesn't result in a failure that can be detected in the initramfs. With these changes, the console-shell and debug-shell hook packages are reduced to only adding the additional tools/features. console-shell is still required for fbkeyboard, and debug-shell for the setup_usb_storage tool. Co-Developed-by: Clayton Craft <craftyguy@postmarketos.org> Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
50 lines
1.7 KiB
Bash
Executable file
50 lines
1.7 KiB
Bash
Executable file
#!/bin/sh -e
|
|
# Copyright 2023 Oliver Smith
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
# Description: lint all shell scripts
|
|
# https://postmarketos.org/pmb-ci
|
|
|
|
DIR="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
if [ "$(id -u)" = 0 ]; then
|
|
set -x
|
|
apk -q add shellcheck
|
|
exec su "${TESTUSER:-build}" -c "sh -e $0"
|
|
fi
|
|
|
|
# Shell: shellcheck
|
|
sh_files="
|
|
./main/mdss-fb-init-hack/mdss-fb-init-hack.sh
|
|
./main/postmarketos-base/rootfs-usr-lib-firmwareload.sh
|
|
./main/postmarketos-base-ui/rootfs-usr-lib-NetworkManager-dispatcher.d-50-dns-filter.sh
|
|
./main/postmarketos-base-ui/rootfs-usr-lib-NetworkManager-dispatcher.d-50-tethering.sh
|
|
./main/postmarketos-installkernel/installkernel-pmos
|
|
./main/postmarketos-initramfs/init.sh
|
|
./main/postmarketos-initramfs/init_functions.sh
|
|
./main/postmarketos-mkinitfs-hook-debug-shell/setup_usb_storage.sh
|
|
./main/postmarketos-mkinitfs-hook-netboot/netboot.sh
|
|
./main/ttyescape/*.post-install
|
|
./main/unl0kr/unlock.sh
|
|
./main/msm-firmware-loader/*.post-install
|
|
./device/community/soc-qcom-sdm845/call_audio_idle_suspend_workaround.sh
|
|
|
|
$(find . -path './main/postmarketos-ui-*/*.sh')
|
|
$(find . -path './main/postmarketos-ui-*/*.pre-install')
|
|
$(find . -path './main/postmarketos-ui-*/*.post-install')
|
|
$(find . -path './main/postmarketos-ui-*/*.pre-upgrade')
|
|
$(find . -path './main/postmarketos-ui-*/*.post-upgrade')
|
|
$(find . -path './main/postmarketos-ui-*/*.pre-deinstall')
|
|
$(find . -path './main/postmarketos-ui-*/*.post-deinstall')
|
|
|
|
$(find . -name '*.trigger')
|
|
$(find . -path './main/devicepkg-dev/*.sh')
|
|
$(find . -path './main/postmarketos-mvcfg/*.sh')
|
|
|
|
$(find . -path './.ci/**.sh')
|
|
"
|
|
|
|
for file in $sh_files; do
|
|
echo "Test with shellcheck: $file"
|
|
cd "$DIR/$(dirname "$file")"
|
|
shellcheck -e SC1008 -e SC3043 -x "$(basename "$file")"
|
|
done
|