pre_remove() {
  # if vi is a binary instead of a symlink we have an intact gvim installation
  # with a different binary/symlink structure
  # we recover what pacmans database know about Vim
  if [ -f /usr/bin/vi ] && [ ! -L /usr/bin/vi ] && [ -L /usr/bin/gvim ]; then
    rm -f /usr/bin/gvim
    mv -f /usr/bin/vim /usr/bin/gvim
    mv -f /usr/bin/vi /usr/bin/vim
    ln -sf /usr/bin/vim /usr/bin/vi
    echo "restore original vim/gvim binaries layout ..."
  fi
}

post_install() {
  # if we have an existing gvim installation - relocate binaries and symlinks
  if [ ! -L /usr/bin/gvim ] && [ -e /usr/bin/gvim ]; then
    rm -f /usr/bin/vi
    mv -f /usr/bin/vim /usr/bin/vi
    mv -f /usr/bin/gvim /usr/bin/vim
    ln -sf /usr/bin/vim /usr/bin/gvim
    echo "move vim/gvim binaries and symlinks..."
  fi
  echo -n "Updating vim help tags..."
  /usr/bin/vim --noplugins -u NONE -U NONE \
    --cmd ":helptags /usr/share/vim/doc" --cmd ":q" > /dev/null 2>&1
  echo "done."
}

post_upgrade() {
  post_install $1
}

pre_upgrade() {
  pre_remove $1
}


op=$1
shift

$op $*
# vim: ft=sh 
