Files
trail-mate/apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero-applaunch
T

118 lines
3.6 KiB
Bash

#!/bin/sh
set -eu
find_st7789v_fbdev()
{
[ -r /proc/fb ] || return 1
while IFS= read -r line; do
case "$line" in
*fb_st7789v*)
set -- $line
case "${1:-}" in
''|*[!0-9]*) return 1 ;;
*) printf '/dev/fb%s\n' "$1"; return 0 ;;
esac
;;
esac
done < /proc/fb
return 1
}
case "$0" in
*/*) script_dir=${0%/*} ;;
*) script_dir=/usr/lib/trailmate-cardputer-zero ;;
esac
settings_root=${TRAIL_MATE_SETTINGS_ROOT:-${HOME:-/home/pi}/.trailmate_cardputer_zero}
load_env_file()
{
env_file=$1
[ -r "$env_file" ] || return 0
set -a
. "$env_file"
set +a
}
load_env_file /etc/trailmate-cardputer-zero.env
load_env_file "$settings_root/trailmate.env"
: "${TRAIL_MATE_RUNTIME_MODE:=mesh}"
: "${TRAIL_MATE_LORA_SPI:=/dev/spidev0.1}"
: "${TRAIL_MATE_LORA_GPIOCHIP:=/dev/gpiochip0}"
: "${TRAIL_MATE_LORA_POWER_GPIO:=-1}"
: "${TRAIL_MATE_LORA_RESET_GPIO:=26}"
: "${TRAIL_MATE_LORA_BUSY_GPIO:=22}"
: "${TRAIL_MATE_LORA_IRQ_GPIO:=23}"
: "${TRAIL_MATE_LORA_SPI_HZ:=500000}"
: "${TRAIL_MATE_LORA_DIO2_RF_SWITCH:=1}"
: "${TRAIL_MATE_LORA_DIO3_TCXO_1V8:=1}"
: "${TRAIL_MATE_GPS_BAUD:=115200}"
: "${TRAIL_MATE_GPS_AUTO_SERIAL:=1}"
: "${TRAIL_MATE_GPS_DEVICE_CANDIDATES:=/dev/serial0:/dev/ttyAMA1:/dev/ttyAMA0:/dev/ttyS0:/dev/ttyS1}"
: "${TRAIL_MATE_DESKTOP_NOTIFICATIONS:=freedesktop}"
if [ -z "${ALL_PROXY:-}${all_proxy:-}${HTTPS_PROXY:-}${https_proxy:-}${HTTP_PROXY:-}${http_proxy:-}" ] &&
command -v ss >/dev/null 2>&1 &&
ss -ltn 2>/dev/null | grep -q '127\.0\.0\.1:7890'; then
ALL_PROXY=http://127.0.0.1:7890
all_proxy=$ALL_PROXY
HTTPS_PROXY=$ALL_PROXY
https_proxy=$ALL_PROXY
HTTP_PROXY=$ALL_PROXY
http_proxy=$ALL_PROXY
fi
export TRAIL_MATE_RUNTIME_MODE
export TRAIL_MATE_LORA_SPI TRAIL_MATE_LORA_GPIOCHIP
export TRAIL_MATE_LORA_POWER_GPIO TRAIL_MATE_LORA_RESET_GPIO
export TRAIL_MATE_LORA_BUSY_GPIO TRAIL_MATE_LORA_IRQ_GPIO
export TRAIL_MATE_LORA_SPI_HZ TRAIL_MATE_LORA_DIO2_RF_SWITCH
export TRAIL_MATE_LORA_DIO3_TCXO_1V8
export TRAIL_MATE_GPS_BAUD TRAIL_MATE_GPS_AUTO_SERIAL
export TRAIL_MATE_GPS_DEVICE TRAIL_MATE_GPS_DEVICE_CANDIDATES
export TRAIL_MATE_DESKTOP_NOTIFICATIONS
export TRAIL_MATE_EARTHDATA_TOKEN TRAIL_MATE_EARTH_DATA_TOKEN
export ALL_PROXY all_proxy HTTPS_PROXY https_proxy HTTP_PROXY http_proxy
backend=${TRAIL_MATE_DISPLAY_BACKEND:-auto}
case "$backend" in
wayland|labwc)
exec "$script_dir/trailmate-cardputer-zero" "$@"
;;
auto|"")
if [ -n "${WAYLAND_DISPLAY:-}" ]; then
exec "$script_dir/trailmate-cardputer-zero" "$@"
fi
echo "trailmate-cardputer-zero-applaunch: Wayland session is required; set TRAIL_MATE_DISPLAY_BACKEND=fbdev only for explicit framebuffer debugging." >&2
exit 127
;;
fb|fbdev|framebuffer|device)
;;
*)
echo "trailmate-cardputer-zero-applaunch: unsupported TRAIL_MATE_DISPLAY_BACKEND=$backend" >&2
exit 2
;;
esac
if [ -z "${TRAIL_MATE_FRAMEBUFFER:-}" ]; then
if [ -n "${APPLAUNCH_LINUX_FBDEV_DEVICE:-}" ]; then
TRAIL_MATE_FRAMEBUFFER=$APPLAUNCH_LINUX_FBDEV_DEVICE
elif detected_fbdev=$(find_st7789v_fbdev); then
TRAIL_MATE_FRAMEBUFFER=$detected_fbdev
else
TRAIL_MATE_FRAMEBUFFER=/dev/fb1
fi
fi
if [ -z "${TRAIL_MATE_INPUT_DEVICE:-}" ]; then
TRAIL_MATE_INPUT_DEVICE="${APPLAUNCH_LINUX_KEYBOARD_DEVICE:-/dev/input/by-path/platform-3f804000.i2c-event}"
fi
export TRAIL_MATE_FRAMEBUFFER TRAIL_MATE_INPUT_DEVICE
exec "$script_dir/trailmate-cardputer-zero-fbdev" "$@"