configs=('20-fix-globaladvance.conf'
         '20-unhint-small-vera.conf'
         '29-replace-bitmap-fonts.conf'
         '30-metric-aliases.conf'
         '30-urw-aliases.conf'
         '40-nonlatin.conf'
         '45-latin.conf'
         '49-sansserif.conf'
         '50-user.conf'
         '51-local.conf'
         '60-latin.conf'
         '65-fonts-persian.conf'
         '65-nonlatin.conf'
         '69-unifont.conf'
         '80-delicious.conf'
         '90-synthetic.conf')

post_install() {
  echo -n "updating font cache... "
  /sbin/ldconfig -r .
  pushd /etc/fonts/conf.d > /dev/null
  for config in "${configs[@]}"; do
    ln -sf ../conf.avail/${config} .
  done
  popd > /dev/null
  /usr/bin/fc-cache -f
  echo "done."
}

post_upgrade() {
  rm -f /etc/fonts/conf.d/10-bitmaps.conf
  cat << _EOF

===> Important Fontconfig configuration change <===

  The way fontconfig is configured has been changed. 
  Configuration is done via /etc/fonts/conf.avail and conf.d.
  Read /etc/fonts/conf.avail/README for more information.

  Configuration via /etc/fonts/local.conf is still possible,
  but is no longer recommended for options available in conf.avail.

_EOF

  if [ `vercmp 2.4.1-1 $2` -gt 0 ]; then 
  # Upgrade from old version, place all symlinks. pre-symlink package version
    echo -n "Linking configuration files... "
    pushd /etc/fonts/conf.d > /dev/null
    for config in "${configs[@]}"; do
      ln -sf ../conf.avail/${config} .
    done
    popd > /dev/null
    echo "done."
  fi

  if [ `vercmp 2.6.0-1 $2` -gt 0 ]; then
  # pre-2.6.0 versions have missing config
    echo -n "Adding missing configuration files... "
    pushd /etc/fonts/conf.d > /dev/null
    ln -sf ../conf.avail/30-metric-aliases.conf .
    ln -sf ../conf.avail/40-nonlatin.conf .
    ln -sf ../conf.avail/45-latin.conf .
    popd > /dev/null
    echo "done."
  fi

  # Remove dead links
  echo -n "Removing outdated configuration files... "
  for config in /etc/fonts/conf.d/*; do
    if [ ! -f ${config} ]; then
      rm -f ${config}
    fi
  done
  echo "done."
  
  echo -n "updating font cache... "
  /usr/bin/fc-cache -f
  echo "done."
}

pre_upgrade() {
  # Link new config files not present on system yet
  echo -n "Symlinking new configuration files... "
  pushd /etc/fonts/conf.d > /dev/null
  for config in "${configs[@]}"; do
    if [ ! -f ../conf.avail/${config} ]; then
      ln -sf ../conf.avail/${config} .
    fi
  done
  popd > /dev/null
  echo "done."
}

post_remove() {
  pushd /etc/fonts/conf.d > /dev/null
  for config in "${configs[@]}"; do
    rm -f ${config}
  done
  popd > /dev/null
}