#!/bin/sh
set -e;\
 suite=trixie;\
 chroot /target apt-mark auto \
  aptitude-common bzip2 pulseaudio-utils sensible-utils xserver-xorg || true;\
 _backup(){ set -e;\
  if [ -e "$1" ]; then \
    find "$1.orig" -mtime +1 2>/dev/null && ext=bak || ext=orig;\
    cp -a "$1" "$1.$ext";\
  else \
    touch "$1.orig";\
  fi; };\
 _backup_todir(){ set -e;\
  dir="$''{2:-$(dirname "$1").bak}";\
  [ -e "$dir" ] || mkdir -p "$dir";\
  path="$dir/$(basename "$1")";\
  if [ -e "$1" ]; then \
    cp -fa "$1" "$path";\
  else \
    touch "$path";\
  fi; };\
 _clone(){ set -e;\
  test -e "$1";\
  _backup "$2";\
  cp -fa "$1" "$2"; };\
 _setline(){ set -e;\
  _backup "$1";\
  if [ $# = 3 ]; then \
    if grep -Eq "^$2\$" "$1"; then \
      sed -i -E \
        -e 's!^('"$2"')$!'"$3"'!g' "$1";\
    else \
      sed -i -E \
        -e 's!^#('"$2"')$!'"$3"'!g' "$1";\
    fi;\
  else \
    sed -i -E \
      -e 's!^#?('"$2"')$!\1!g' "$1";\
  fi; };\
 _setappendline(){ set -e;\
  if grep -Eq '^#?'"$2"'$' "$1" 2>/dev/null; then \
    _setline "$@";\
  else \
    _backup "$1";\
    echo "$''{3:-$2}" >> "$1";\
  fi; };\
 _setvar(){ set -e;\
  _backup "$1";\
  if grep -Eq '^'"$2"'[ \t]*=' "$1"; then \
    sed -i -E \
      -e 's!^('"$2"'[ \t]*=[ \t]*).*!\1'"$3"'!' "$1";\
  else \
    sed -i -E \
      -e 's!^#('"$2"'[ \t]*=[ \t]*).*!\1'"$3"'!' "$1";\
  fi; };\
 _setappendvar(){ set -e;\
  if grep -Eq '^#?'"$2"'[ \t]*=' "$1" 2>/dev/null; then \
    _setvar "$@";\
  else \
    _backup "$1";\
    echo "$2=$3" >> "$1";\
  fi; };\
 _setinivar(){ set -e;\
  _backup "$1";\
  if sed -ne '/^\['"$2"'\]/,/^\[.*\]/ p' "$1" | grep -Eq '^'"$3"'[ \t]*='; then \
    sed -i -E \
      -e '/^\['"$2"'\]/,/^\[.*\]/ s!^('"$3"'[ \t]*=[ \t]*).*$!\1'"$4"'!' "$1";\
  else \
    sed -i -E \
      -e '/^\['"$2"'\]/,/^\[.*\]/ s!^#('"$3"'[ \t]*=[ \t]*).*$!\1'"$4"'!' "$1";\
  fi; };\
 _clearinikey(){ set -e;\
  _backup "$1";\
  if sed -ne '/^\['"$2"'\]/,/^\[.*\]/ p' "$1" | grep -Eq '^'"$3"'[ \t]*='; then \
    sed -i -E \
      -e '/^\['"$2"'\]/,/^\[.*\]/ s!^('"$3"'[ \t]*=[ \t]*).*$!\1'"$4"'!' "$1";\
  else \
    sed -i -E \
      -e '/^\['"$2"'\]/,/^\[.*\]/ s!^#('"$3"'[ \t]*=[ \t]*).*$!\1'"$4"'!' "$1";\
  fi; };\
 _setaddinivar(){ set -e;\
  _backup "$1";\
  if [ ! -e "$1" ]; then \
    { echo "[$2]"; echo "$3=$4"; } >> "$1";\
  elif ! grep -Eq "^\\[$2\\]" "$1"; then \
    { echo; echo "[$2]"; echo "$3=$4"; } >> "$1";\
  elif sed -ne '/^\['"$2"'\]/,/^\[.*\]/ p' "$1" | grep -Eq '^#?'"$3"'[ \t]*='; then \
    _setinivar "$@";\
  else \
    sed -i -E \
      -e '/^\['"$2"'\]/ a'"$3=$4" "$1";\
  fi; };\
 _uuid(){ set -e;\
  tmpfile=$(mktemp);\
  (umask 077; fallocate --length 40kib "$tmpfile");\
  PATH="/usr/sbin:/sbin:$PATH" mkswap "$tmpfile" | grep -Po '\bUUID=\K\S+';\
  rm -f "$tmpfile"; };\
 file=/target/etc/mc/mc.ini;\
 _setaddinivar "$file" Midnight-Commander auto_save_setup false;\
 _setaddinivar "$file" Midnight-Commander use_internal_view true;\
 _setaddinivar "$file" Midnight-Commander use_internal_edit true;\
 _setaddinivar "$file" Midnight-Commander num_history_items_recorded 200;\
 _setaddinivar "$file" Midnight-Commander editor_option_save_mode false;\
 _setaddinivar "$file" Midnight-Commander editor_show_right_margin false;\
 _setaddinivar "$file" Midnight-Commander skin dark;\
 _setaddinivar "$file" Panels navigate_with_arrows true;\
 _setaddinivar "$file" Layout message_visible false;\
 _setaddinivar "$file" Layout menubar_visible false;\
 cd /target/etc/xdg/xfce4/xfconf/xfce-perchannel-xml;\
 _clone ../../panel/default.xml xfce4-panel.xml;\
 sed -i -E \
  -e 's,xfce4-appfinder,exo-mail-reader,' \
  xfce4-panel.xml;\
 _backup xfce4-session.xml;\
 sed -i -E \
  -e 's,(<property name="general"[^>]*>),\1\''n    <property name="SaveOnExit" type="bool" value="false"/>,' \
  xfce4-session.xml
