Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / ibm-public / postfix / dist / mantools / enter
blob4287c1a6cb00e5e57a5a1335397327d8eea23134
1 #!/bin/sh
3 # enter - set up project-specific environment
5 # @(#) enter.sh 1.5 11/4/89 15:56:03
7 # initialize
9 IFS="
12 : ${HOME?} ${SHELL=/bin/sh} make sure these are set
14 # sanity checks...
16 test $# = 1 || {
17 echo "Usage: ${0} project" 1>&2; exit 1
20 test -r ${HOME}/.${1} || {
21 echo "${0}: can't read environment file: '${HOME}/.${1}'" 1>&2; exit 1
24 test -x ${SHELL} || {
25 echo "${0}: can't execute command shell: '${SHELL}'" 1>&2; exit 1
28 # set up default Bourne-shell prompt
30 export PS1; PS1="$1%${PS1- }"
32 # load environment
34 . ${HOME}/.${1}
36 # define UPPER and lower-case environment variables with the project name
38 _PNAME_=`echo ${1} | case \`echo -n\` in # assume $1 lower case
39 "") tr a-z A-Z;; # this is for V7, BSD
40 *) tr '[a-z]' '[A-Z]';; # and this is for SYSV
41 esac`
42 eval ${1}=\${${_PNAME_}=\${${1}}}
44 eval test "X\${${1}}" != X || {
45 echo "${0}: ${HOME}/.${1} should set '${1}' or '${_PNAME_}'" 1>&2; exit 1
48 export ${1} MANPATH PATH ${_PNAME_}
50 # become a new shell
52 echo "Entering project '${1}' - leave with 'exit' or 'control-d'" 1>&2
54 exec ${SHELL}
56 echo "project ${1} NOT entered" 1>&2; exit 1;
58 #++
59 # NAME
60 # enter 1
61 # SUMMARY
62 # set up a project-specific environment
63 # PROJECT
64 # sdetools
65 # SYNOPSIS
66 # enter project
67 # exit
68 # DESCRIPTION
69 # The \fIenter\fR command sets up an environment that makes
70 # it easy to access \fIproject\fR-specific programs and files.
72 # \fIenter\fP consults a file with environment information
73 # ($HOME/.\fIproject\fR, Bourne-shell syntax) and invokes
74 # a new command shell of the same type as the login shell.
75 # Typically, project environment files are maintained and
76 # given out by the project administrator.
78 # In order to leave the project environment use the \fIexit\fP
79 # command or type a control-d;
80 # the details may depend on the type of login shell involved.
82 # As a minimum, the environment file should set an environment
83 # variable with the same name as the \fIproject\fP. The variable
84 # name can be either be identical to \fIproject\fP or in upper case.
85 # For consistency, \fIenter\fP will set both variables to the same value.
86 # EXAMPLE
87 # .fi
88 # .ad
89 # In this example,
90 # all files pertaining to a project \fIfoobar\fR are located under the
91 # directory \fI/usr/foo/bar/foobar\fR. For example, there
92 # are subdirectories
93 # \fI/usr/foo/bar/foobar/man\fR with manual pages,
94 # \fI/usr/foo/bar/foobar/bin\fR with executable
95 # programs, other directories for object libraries and include files,
96 # and so on.
98 # In order to enter a project \fIfoobar\fR, the command
99 # .PP
100 # .ti +5
101 # .ft C
102 # enter foobar
103 # .ft
104 # .PP
105 # consults a file \fI.foobar\fR (in the user\'s home directory)
106 # with contents:
107 # .PP
108 # .ft C
109 # .nf
110 # .in +5
111 # export FOOBAR; FOOBAR=/usr/foo/bar/foobar
112 # export PATH; PATH=$PATH:$FOOBAR/bin
113 # export MANPATH; MANPATH=$MANPATH:$FOOBAR/man
114 # .ft
115 # .fi
116 # .PP
117 # The second line automatically makes all project-specific
118 # executable programs accessible. The third line makes it possible
119 # to use the standard UNIX \fIman\fR command for retrieval of
120 # project-specific manual pages. The \fIenter\fR command
121 # makes sure that both the \fIfoobar\fR and \fIFOOBAR\fR
122 # environment variables are set to the same value.
123 # COMMANDS
124 # sh(1), echo(1), test(1), tr(1), login shell
125 # FILES
126 # $HOME/.\fIproject\fR
127 # ENVIRONMENT VARIABLES
128 # SHELL, login shell
129 # HOME, login directory
130 # PATH, search path for commands
131 # MANPATH, search path for the \fIman\fR command.
132 # BUGS
133 # Name clashes may occur if people have entered several projects
134 # at the same time. This can be avoided by using unique project names,
135 # which is a good idea anyway.
136 # AUTHOR(S)
137 # W.Z. Venema
138 # Eindhoven University of Technology
139 # Department of Mathematics and Computer Science
140 # Den Dolech 2, P.O. Box 513, 5600 MB Eindhoven, The Netherlands
141 # CREATION DATE
142 # Tue Apr 19 15:35:41 MET DST 1988
143 # STATUS
144 # enter.sh 1.5 11/4/89 15:56:03 (draft)