#! /bin/sh
# installman.sh --- install or uninstall manpages for Vim
#
# arguments:
# 1  what: "install", "uninstall" or "xxd"
# 2  target directory			   e.g., "/usr/local/man/it/man1"
# 3  language addition			   e.g., "" or "-it"
# 4  vim location as used in manual pages  e.g., "/usr/local/share/vim"
# 5  runtime dir for menu.vim et al.	   e.g., "/usr/local/share/vim/vim70"
# 6  runtime dir for global vimrc file	   e.g., "/usr/local/share/vim"
# 7  source dir for help files		   e.g., "../runtime/doc"
# 8  mode bits for manpages		   e.g., "644"
# 9  vim exe name			   e.g., "vim"
# 10 name of vimdiff exe		   e.g., "vimdiff"
# 11 name of evim exe			   e.g., "evim"

errstatus=0

what=$1
destdir=$2
langadd=$3
vimloc=$4
scriptloc=$5
vimrcloc=$6
helpsource=$7
manmod=$8
exename=$9
# older shells don't support ${10}
shift
vimdiffname=$9
shift
evimname=$9

helpsubloc=$scriptloc/doc
printsubloc=$scriptloc/print
synsubloc=$scriptloc/syntax
tutorsubloc=$scriptloc/tutor

if test $what = "install" -o $what = "xxd"; then
   if test ! -d $destdir; then
      echo creating $destdir
      ./mkinstalldirs $destdir
   fi
fi

# Note: setting LC_ALL to C is required to avoid illegal byte errors from sed
# on some systems.

if test $what = "install"; then
   # vim.1
   echo installing $destdir/$exename.1
   LC_ALL=C sed -e s+/usr/local/lib/vim+$vimloc+ \
	   -e s+$vimloc/doc+$helpsubloc+ \
	   -e s+$vimloc/print+$printsubloc+ \
	   -e s+$vimloc/syntax+$synsubloc+ \
	   -e s+$vimloc/tutor+$tutorsubloc+ \
	   -e s+$vimloc/vimrc+$vimrcloc/vimrc+ \
	   -e s+$vimloc/gvimrc+$vimrcloc/gvimrc+ \
	   -e s+$vimloc/menu.vim+$scriptloc/menu.vim+ \
	   -e s+$vimloc/bugreport.vim+$scriptloc/bugreport.vim+ \
	   -e s+$vimloc/filetype.vim+$scriptloc/filetype.vim+ \
	   -e s+$vimloc/scripts.vim+$scriptloc/scripts.vim+ \
	   -e s+$vimloc/optwin.vim+$scriptloc/optwin.vim+ \
	   -e 's+$vimloc/\*.ps+$scriptloc/\*.ps+' \
	   $helpsource/vim$langadd.1 > $destdir/$exename.1
   chmod $manmod $destdir/$exename.1

   # vimtutor.1
   echo installing $destdir/$exename""tutor.1
   LC_ALL=C sed -e s+/usr/local/lib/vim+$vimloc+ \
	   -e s+$vimloc/tutor+$tutorsubloc+ \
	   $helpsource/vimtutor$langadd.1 > $destdir/$exename""tutor.1
   chmod $manmod $destdir/$exename""tutor.1

   # vimdiff.1
   echo installing $destdir/$vimdiffname.1
   cp $helpsource/vimdiff$langadd.1 $destdir/$vimdiffname.1
   chmod $manmod $destdir/$vimdiffname.1

   # evim.1
   echo installing $destdir/$evimname.1
   LC_ALL=C sed -e s+/usr/local/lib/vim+$vimloc+ \
	   -e s+$vimloc/evim.vim+$scriptloc/evim.vim+ \
	   $helpsource/evim$langadd.1 > $destdir/$evimname.1
   chmod $manmod $destdir/$evimname.1
fi

if test $what = "uninstall"; then
   echo Checking for Vim manual pages in $destdir...
   if test -r $destdir/$exename.1; then
      echo deleting $destdir/$exename.1
      rm -f $destdir/$exename.1
   fi
   if test -r $destdir/$exename""tutor.1; then
      echo deleting $destdir/$exename""tutor.1
      rm -f $destdir/$exename""tutor.1
   fi
   if test -r $destdir/$vimdiffname.1; then
      echo deleting $destdir/$vimdiffname.1
      rm -f $destdir/$vimdiffname.1
   fi
   if test -r $destdir/$evimname.1; then
      echo deleting $destdir/$evimname.1
      rm -f $destdir/$evimname.1
   fi
fi

if test $what = "xxd"; then
   echo installing $destdir/xxd.1
   cp $helpsource/xxd$langadd.1 $destdir/xxd.1
   chmod $manmod $destdir/xxd.1
fi

exit $errstatus

# vim: set sw=3 sts=3 :
