vim/src/installman.sh
Bram Moolenaar 20563e0f84 patch 8.2.4421: some installed files and directories have wrong permissions
Problem:    Some installed files and directories have wrong permissions.
Solution:   Adjust the Makefile and shell to set permissions. (closes #9793)
2022-02-19 13:25:18 +00:00

125 lines
3.7 KiB
Bash
Executable file

#! /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/vim81"
# 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
/bin/sh install-sh -c -d $destdir
chmod 755 $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
if test -r $helpsource/vim$langadd.1; then
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
fi
# vimtutor.1
if test -r $helpsource/vimtutor$langadd.1; then
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
fi
# vimdiff.1
if test -r $helpsource/vimdiff$langadd.1; then
echo installing $destdir/$vimdiffname.1
cp $helpsource/vimdiff$langadd.1 $destdir/$vimdiffname.1
chmod $manmod $destdir/$vimdiffname.1
fi
# evim.1
if test -r $helpsource/evim$langadd.1; then
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
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" -a -r "$helpsource/xxd${langadd}.1"; 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 :