#!/bin/sh
set -e
KEYBINDINGS=/usr/lib/microb-engine/chrome/toolkit/content/global/platformHTMLBindings.xml
PREFFILE=/home/user/.mozilla/microb/prefs.js
PREFBACK="$PREFFILE.snavstate"
FILEEXISTS=1
export FILEEXISTS
test -f $KEYBINDINGS || FILEEXISTS=
if test -z "$FILEEXISTS"; then
 echo "Failed to find $KEYBINDINGS, this won't work," 1>&2
 exit 1
fi

OLDUP='<handler event="keypress" keycode="VK_UP" command="cmd_scrollLineUp" \/>'
OLDDOWN='<handler event="keypress" keycode="VK_DOWN" command="cmd_scrollLineDown" \/>'
OLDPREF='user_pref("snav\.enabled", true);'
OLDPREFG='user_pref("snav.enabled", true);'
NEWUP='<handler event="keypress" keycode="VK_UP" command="cmd_movePageUp" \/>'
NEWDOWN='<handler event="keypress" keycode="VK_DOWN" command="cmd_movePageDown" \/>'
NEWPREF='user_pref("snav.enabled", false);'

LINESOK=1
grep "$OLDUP" $KEYBINDINGS || LINESOK=
grep "$OLDDOWN" $KEYBINDINGS || LINESOK=

if test -z "$LINESOK"; then
 echo The keybindings in $KEYBINDINGS do not match the expected results 1>&2
 echo Please report this to the package maintainer.
 exit 1
fi

umask 006
REPLACELINES="s/$OLDUP/$NEWUP/; s/$OLDDOWN/$NEWDOWN/;"
sed -ie "$REPLACELINES" $KEYBINDINGS
chown user:users $KEYBINDINGS

PREFSET=1
grep -F "$OLDPREFG" $PREFFILE > /dev/null && PREFSET=
if test -z "$PREFSET" ; then
 sed -ie "s/$OLDPREF/$NEWPREF/" $PREFFILE
 touch $PREFBACK
 chown user:users $PREFFILE $PREFBACK
fi
exit 0
