openbsd-ports/japanese/Wnn/files/install-script
sturm 58ca9acb21 new user naming schema
bump PKGNAME where necessary

rohee@ ok leafnode
"you don't have to wait for oks" pval@
2003-06-23 19:11:10 +00:00

104 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
# installation script for Japanese Wnn 4.2
DICDIR=/var/dict/Wnn
yesno() {
local question answer
question=$1
while :; do
read answer?"${question} (y/n) [y]"
case "${answer}" in
[Nn]*) return 1;;
[Yy]*) return 0;;
"") return 0;;
esac
echo "Please answer yes or no."
done
}
create_wnn() {
local uname begin gid
uname='_wnn'
begin=517
while [ X`id -u $begin 2>/dev/null` == X$begin ]
do
begin=`expr $begin + 1`
done
echo "Creating user _wnn ($begin)"
gid=`id -g bin`
chpass -a "_wnn:*:${begin}:${gid}::::Wnn server:/root:/sbin/nologin" || exit 1
}
for i in japanese chinese korean
do
case "$i" in
japanese)
name=ja
base="$DICDIR/ja_JP"
sys_dirs="$DICDIR/ja_JP/pubdic $DICDIR/ja_JP/wnncons"
wnntouch=/usr/local/bin/wnntouch
wnnserver=/usr/local/bin/jserver;;
chinese)
name=zh
base="$DICDIR/zh_CN $DICDIR/zh_TW"
sys_dirs="$DICDIR/zh_CN/sys $DICDIR/zh_TW/sys"
wnntouch=/usr/local/bin/cwnntouch
wnnserver=/usr/local/bin/cserver;;
korean)
name=ko
base="$DICDIR/ko_KR"
sys_dirs="$DICDIR/ko_KR/sys"
wnntouch=/usr/local/bin/kwnntouch
wnnserver=/usr/local/bin/kserver;;
esac
# no base package present yet, bail out
[ -e $wnntouch ] || continue
if id -u _wnn >/dev/null 2>/dev/null
then
echo "So, user _wnn already exists !"
else
echo "You need a user named _wnn"
if yesno "Would you like to create it automatically now"; then
create_wnn
else
echo "You still need to run /usr/local/lib/wnn/install-script"
echo "to finish Wnn installation later"
exit 0
fi
fi
chown _wnn $wnnserver
chmod u+s $wnnserver
# base directory not yet present, bail out
for dir in $base; do
if [ -d $dir ]; then
if [ `ls -ld $dir |awk '{print $3}'` == _wnn ]; then
# already installed
continue 2
else
chown -R _wnn $dir
fi
else
echo "For a complete server, you need $name-Wnn-dict-4.2 as well"
continue 2
fi
done
for dir in $sys_dirs; do
$wnntouch $dir/*
done
for dir in $base; do
if [ ! -d $dir/usr ]; then
mkdir -p $dir/usr
fi
chown _wnn $dir/usr
chmod u+w $dir/usr
done
done