diff options
author | Xiao Pan <xyz@flylightning.xyz> | 2024-12-16 18:44:05 -0800 |
---|---|---|
committer | Xiao Pan <xyz@flylightning.xyz> | 2024-12-16 18:48:49 -0800 |
commit | cf6365c0957253940b8fae7e1a606105c6a2754c (patch) | |
tree | df259da4c45432c0fc3d2d2b496d226664ca94ce /pkgbuilds/osk-sdl/osk-sdl-hooks | |
parent | 75c587ea9c4b8bf19ef6eec11a6e0aed508f3dac (diff) |
Add osk-sdl PKGBUILD from danctnix Pine64-Arch
https://github.com/dreemurrs-embedded/Pine64-Arch
Diffstat (limited to 'pkgbuilds/osk-sdl/osk-sdl-hooks')
-rw-r--r-- | pkgbuilds/osk-sdl/osk-sdl-hooks | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/pkgbuilds/osk-sdl/osk-sdl-hooks b/pkgbuilds/osk-sdl/osk-sdl-hooks new file mode 100644 index 0000000..4c73056 --- /dev/null +++ b/pkgbuilds/osk-sdl/osk-sdl-hooks @@ -0,0 +1,69 @@ +#!/usr/bin/ash + +run_hook() { + + # Set these variables to help osk-sdl display correctly. + export ETNA_MESA_DEBUG=no_supertile + export SDL_VIDEODRIVER=kmsdrm + + modprobe -a -q dm-crypt >/dev/null 2>&1 + [ "${quiet}" = "y" ] && CSQUIET=">/dev/null" + + if [ -n "${cryptdevice}" ]; then + DEPRECATED_CRYPT=0 + IFS=: read cryptdev cryptname <<EOF +$cryptdevice +EOF + else + DEPRECATED_CRYPT=1 + cryptdev="${root}" + cryptname="root" + fi + + # This may happen if third party hooks do the crypt setup + if [ -b "/dev/mapper/${cryptname}" ]; then + echo "Device ${cryptname} already exists, not doing any crypt setup." + return 0 + fi + + warn_deprecated() { + echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated" + echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead." + } + + if resolved=$(resolve_device "${cryptdev}" ${rootdelay}); then + if cryptsetup isLuks ${resolved} >/dev/null 2>&1; then + [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated + dopassphrase=1 + # Ask for a passphrase + if [ ${dopassphrase} -gt 0 ]; then + echo "" + echo "A password is required to access the ${cryptname} volume" + + #loop until we get a real password + while ! [ -b "/dev/mapper/${cryptname}" ]; do + osk-sdl -G -d ${resolved} -n ${cryptname} -c /etc/osk.conf + done + fi + if [ -e "/dev/mapper/${cryptname}" ]; then + if [ ${DEPRECATED_CRYPT} -eq 1 ]; then + export root="/dev/mapper/root" + fi + else + err "Password succeeded, but ${cryptname} creation failed, aborting..." + return 1 + fi + else + err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume." + fi + fi + + IFS=, + if [ -n "${osk_kms}" ]; then + for i in $osk_kms + do + echo "Resetting $i module" + rmmod -f "$i" + done + fi +} |