#!/usr/bin/with-contenv bash

# default file copies first run
if [[ ! -f /config/.config/openbox/autostart ]]; then
  mkdir -p /config/.config/openbox
  cp /defaults/autostart /config/.config/openbox/autostart
  chown -R abc:abc /config/.config/openbox
fi
if [[ ! -f /config/.config/openbox/menu.xml ]]; then
  mkdir -p /config/.config/openbox && \
  cp /defaults/menu.xml /config/.config/openbox/menu.xml && \
  chown -R abc:abc /config/.config
fi

# XDG Home
printf "${HOME}/.XDG" > /run/s6/container_environment/XDG_RUNTIME_DIR
if [ ! -d "${HOME}/.XDG" ]; then
  mkdir -p ${HOME}/.XDG
  chown abc:abc ${HOME}/.XDG
fi

# Locale Support
if [ ! -z ${LC_ALL+x} ]; then
  printf "${LC_ALL%.UTF-8}" > /run/s6/container_environment/LANGUAGE
  printf "${LC_ALL}" > /run/s6/container_environment/LANG
fi

# Remove window borders
if [[ ! -z ${NO_DECOR+x} ]] && [[ ! -f /decorlock ]]; then
  sed -i \
    's|</applications>|  <application class="*"> <decor>no</decor> </application>\n</applications>|' \
    /etc/xdg/openbox/rc.xml
  touch /decorlock
fi

# Fullscreen everything in openbox unless the user explicitly disables it
if [[ ! -z ${NO_FULL+x} ]] && [[ ! -f /fulllock ]]; then
  sed -i \
    '/<application class="\*"><maximized>yes<\/maximized><\/application>/d' \
    /etc/xdg/openbox/rc.xml
  touch /fulllock
fi

# Add proot-apps
if [ ! -f "${HOME}/.local/bin/proot-apps" ]; then
  mkdir -p ${HOME}/.local/bin/
  cp /proot-apps/* ${HOME}/.local/bin/
  echo 'export PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc
  chown abc:abc \
    ${HOME}/.bashrc \
    ${HOME}/.local/ \
    ${HOME}/.local/bin \
    ${HOME}/.local/bin/{ncat,proot-apps,proot,jq,pversion}
elif ! diff -q /proot-apps/pversion ${HOME}/.local/bin/pversion > /dev/null; then
  cp /proot-apps/* ${HOME}/.local/bin/
  chown abc:abc ${HOME}/.local/bin/{ncat,proot-apps,proot,jq,pversion}
fi



# set env based on vars
#printf "${SELKIES_INTERPOSER}${LD_PRELOAD:+:${LD_PRELOAD}}" > /run/s6/container_environment/LD_PRELOAD
printf "${GST_DEBUG:-*:1}" > /run/s6/container_environment/GST_DEBUG
printf "${SELKIES_VIDEO_BITRATE:-16000}" > /run/s6/container_environment/SELKIES_VIDEO_BITRATE
printf "${SELKIES_ENCODER:-x264enc-striped}" > /run/s6/container_environment/SELKIES_ENCODER
printf "${SELKIES_FRAMERATE:-30}" > /run/s6/container_environment/SELKIES_FRAMERATE
printf "${SELKIES_AUDIO_BITRATE:-320000}" > /run/s6/container_environment/SELKIES_AUDIO_BITRATE
printf "${SELKIES_ENABLE_RESIZE:-true}" > /run/s6/container_environment/SELKIES_ENABLE_RESIZE
printf "${DISPLAY_SIZEW:-1024}" > /run/s6/container_environment/DISPLAY_SIZEW
printf "${DISPLAY_SIZEH:-768}" > /run/s6/container_environment/DISPLAY_SIZEH
printf "${DISPLAY_REFRESH:60}" > /run/s6/container_environment/DISPLAY_REFRESH
printf "${DISPLAY_DPI:-96}" > /run/s6/container_environment/DISPLAY_DPI
printf "${DISPLAY_CDEPTH:-24}" > /run/s6/container_environment/DISPLAY_CDEPTH
printf "/usr/lib/selkies_joystick_interposer.so" > /run/s6/container_environment/LD_PRELOAD
printf "unix:path=${HOME}/dbus-system-bus" > /run/s6/container_environment/DBUS_SYSTEM_BUS_ADDRESS
# GI folders
printf "/usr/lib/girepository-1.0" > /run/s6/container_environment/GI_TYPELIB_PATH
printf "/usr/lib/gstreamer-1.0/" > /run/s6/container_environment/GST_PLUGIN_PATH
printf "/usr/lib/python3.12/site-packages" > /run/s6/container_environment/PYTHONPATH
# JS folder setup
mkdir -pm1777 /dev/input
touch /dev/input/{js0,js1,js2,js3,event1000,event1001,event1002,event1003}
chmod 777 /dev/input/js* /dev/input/event*

