#!/usr/bin/sh

## Runs the GUI program from $@ in Weston

CONFIG_FILE=$(mktemp --suffix="-wl-weston-firstboot-ini")
RUN_SCRIPT=$(mktemp --suffix="-wl-weston-firstboot-run")
EXIT_CODE_SAVE=$(mktemp --suffix="-wl-weston-firstboot-exit")

cat > ${CONFIG_FILE} << EOF
[core]
shell=kiosk
xwayland=true

[autolaunch]
path=${RUN_SCRIPT}
watch=true
EOF

cat > ${RUN_SCRIPT} << EOF
#!/bin/sh
$@
echo $? > ${EXIT_CODE_SAVE}
EOF

chmod +x ${RUN_SCRIPT}

if [ -n "$XDG_VTNR" ]; then
    # change to VT on which we run to get access to devices
    chvt "${XDG_VTNR}"
fi

cards=$(ls -d /sys/class/drm/card*| grep -v -- -| cut -d / -f 5)
primary_card=$(echo "$cards" | head -1 )
secondary_cards=$(echo "$cards"|
                  tail -n +2|
                  xargs printf "%s,")

weston --config=${CONFIG_FILE} --socket=wl-firstboot-0 --drm-device="$primary_card" --additional-devices="$secondary_cards"
exit_code=$(< ${EXIT_CODE_SAVE})

rm ${CONFIG_FILE} ${RUN_SCRIPT} ${EXIT_CODE_SAVE}
exit $exit_code
