3bbca1a8aa5641f03f74f720066c75d8ad8b4423
[jra/samba/.git] / source3 / script / installman.sh
1 #!/bin/sh
2 #5 July 96 Dan.Shearer@unisa.edu.au  removed hardcoded values
3 #
4 # 13 Aug 2001  Rafal Szczesniak <mimir@spin.ict.pwr.wroc.pl>
5 #   modified to accomodate international man pages (inspired
6 #   by Japanese edition's approach)
7
8 MANDIR=`echo $1 | sed 's/\/\//\//g'`
9 SRCDIR=$2/
10 langs=$3
11
12 if [ $# -ge 4 ] ; then
13   GROFF=$4                    # sh cmd line, including options 
14 fi
15
16 if test ! -d $SRCDIR../docs/manpages; then
17         echo "No manpages present.  SVN development version maybe?"
18         exit 0
19 fi
20
21 # Get the configured feature set
22 test -f "${SRCDIR}/config.log" && \
23         eval $( grep "^[[:alnum:]]*=.*" "${SRCDIR}/config.log")
24
25 for lang in $langs; do
26     if [ "X$lang" = XC ]; then
27         echo Installing default man pages in $MANDIR/
28         lang=.
29     else
30         echo Installing \"$lang\" man pages in $MANDIR/lang/$lang
31     fi
32
33     langdir=$MANDIR/$lang
34     for d in $MANDIR $langdir $langdir/man1 $langdir/man5 $langdir/man7 $langdir/man8; do
35         if [ ! -d $d ]; then
36             mkdir $d
37             if [ ! -d $d ]; then
38                 echo Failed to make directory $d, does $USER have privileges?
39                 exit 1
40             fi
41         fi
42     done
43
44     for sect in 1 5 7 8 ; do
45         for m in $langdir/man$sect ; do
46             for s in $SRCDIR../docs/manpages/$lang/*$sect; do
47             MP_BASENAME=${s##*/}
48
49             # Check if this man page if required by the configured feature set
50             case "${MP_BASENAME}" in
51                 smbsh.1) test -z "${SMBWRAPPER}" && continue ;;
52                 *) ;;
53             esac
54
55             FNAME="$m/${MP_BASENAME}"
56
57             # Test for writability.  Involves 
58             # blowing away existing files.
59  
60             if (rm -f $FNAME && touch $FNAME); then
61                 if [ "x$GROFF" = x ] ; then
62                     cp $s $m            # Copy raw nroff 
63                 else
64                     echo "\t$FNAME"     # groff'ing can be slow, give the user
65                                         #   a warm fuzzy.
66                     $GROFF $s > $FNAME  # Process nroff, because man(1) (on
67                                         #   this system) doesn't .
68                 fi
69                 chmod 0644 $FNAME
70             else
71                 echo Cannot create $FNAME... does $USER have privileges?
72             fi
73             done
74         done
75     done
76 done
77 cat << EOF
78 ======================================================================
79 The man pages have been installed. You may uninstall them using the command
80 the command "make uninstallman" or make "uninstall" to uninstall binaries,
81 man pages and shell scripts.
82 ======================================================================
83 EOF
84
85 exit 0
86