#!/bin/sh
set -e;\
 chroot /target apt-mark auto \
  acpi-support-base aptitude-common bash-completion evolution-data-server grub-common gvfs isc-dhcp-common lightdm-gtk-greeter pulseaudio-utils tasksel-data uuid-runtime vim-common xserver-xorg;\
 _backup(){ set -e;\
  if [ -e "$1" ]; then \
    if [ -e "$1.orig" ]; then \
      cp -a "$1" "$1.bak";\
    else \
      cp -a "$1" "$1.orig";\
    fi;\
  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 \
    sed -i -r \
      -e "s!^#?($2)\$!$3!g" "$1";\
  else \
    sed -i -r \
      -e "s!^#?($2)\$!\\1!g" "$1";\
  fi; };\
 _setappendline(){ set -e;\
  if [ -e "$1" ] && egrep -q "^#?$2\$" "$1"; then \
    _setline "$@";\
  else \
    _backup "$1";\
    echo "$''{3:-$2}" >> "$1";\
  fi; };\
 _setvar(){ set -e;\
  _backup "$1";\
  sed -i -r \
    -e "s!^#?($2)=.*!\\1=$3!" "$1"; };\
 _setappendvar(){ set -e;\
  if [ -e "$1" ] && egrep -q "^#?$2=" "$1"; then \
    _setvar "$@";\
  else \
    _backup "$1";\
    echo "$2=$3" >> "$1";\
  fi; };\
 _setvar /target/etc/default/acpi-support LID_SLEEP true;\
 _pkgdeps(){ set -e;\
  chroot /target dpkg-query \
    -Wf=',$''{Pre-Depends},$''{Depends},$''{Recommends}\''n' $* 2>/dev/null \
    | sed -r \
    -e 's/[,|] *([a-z0-9.+-]+)?(:\s+)?( *[^|,]*)?/\1\''n/g' \
    | sed '/^$/d'|sort -u; };\
 _pkg2re(){ set -e;\
  echo $* \
    | sed -r \
    -e 's/\s+/\|/g;' \
    -e 's/^\|//;' \
    -e 's/([.+-])/\\\1/g;' \
    -e 's/\|$//'; };\
 _pkgreal(){ set -e;\
  chroot /target dpkg-query \
    -Wf='$''{Package},$''{Provides},\''n' \
    | sed -r \
    -e '/,,/d;' \
    -e 's/^([a-z0-9.+-]+).*[,|] *('"$(_pkg2re $*)"')[ :,]/\1/;' \
    -e '/,/d'; };\
 _pkganddeepdeps(){ set -e;\
  rest=$*;\
  all=$rest;\
  for i in 1 2 3 4 5; do \
    deps=$(_pkgdeps $rest);\
    rest="$deps $(_pkgreal $deps)";\
    all="$all $rest";\
  done;\
  echo $all \
    | sed -r \
    -e 's/\s+/\''n/g' \
    | sort -u; };\
 _pkgessentials(){ set -e;\
  chroot /target dpkg-query \
    -Wf='$''{Package}%$''{Essential}\''n' \
    | sed -r \
    -e 's/(.*)%yes/\1/;' \
    -e '/%/d'; };\
 chroot /target apt-mark auto \
  $(_pkganddeepdeps $(_pkgessentials) apt) || true;\
 _setvar /target/etc/default/rcS FSCKFIX yes;\
 cd /target/etc/xdg/xfce4/xfconf/xfce-perchannel-xml;\
 _clone ../../panel/default.xml xfce4-panel.xml;\
 sed -i -r \
  -e 's,xfce4-appfinder,exo-mail-reader,' \
  xfce4-panel.xml;\
 _backup xfce4-session.xml;\
 sed -i -r \
  -e 's,(<property name="general"[^>]*>),\1\''n    <property name="SaveOnExit" type="bool" value="false"/>,' \
  xfce4-session.xml
