~ubuntu-branches/ubuntu/dapper/postfix/dapper-security

« back to all changes in this revision

Viewing changes to mantools/enter

  • Committer: Bazaar Package Importer
  • Author(s): LaMont Jones
  • Date: 2005-02-27 09:33:07 UTC
  • Revision ID: james.westby@ubuntu.com-20050227093307-cn789t27ibnlh6tf
Tags: upstream-2.1.5
ImportĀ upstreamĀ versionĀ 2.1.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
 
 
3
# enter - set up project-specific environment
 
4
 
 
5
# @(#) enter.sh 1.5 11/4/89 15:56:03
 
6
 
 
7
# initialize
 
8
 
 
9
IFS="   
 
10
"
 
11
 
 
12
: ${HOME?} ${SHELL=/bin/sh} make sure these are set
 
13
 
 
14
# sanity checks...
 
15
 
 
16
test $# = 1 || { 
 
17
    echo "Usage: ${0} project" 1>&2; exit 1
 
18
}
 
19
 
 
20
test -r ${HOME}/.${1} || { 
 
21
    echo "${0}: can't read environment file: '${HOME}/.${1}'" 1>&2; exit 1
 
22
}
 
23
 
 
24
test -x ${SHELL} || { 
 
25
    echo "${0}: can't execute command shell: '${SHELL}'" 1>&2; exit 1
 
26
}
 
27
 
 
28
# set up default Bourne-shell prompt
 
29
 
 
30
export PS1; PS1="$1%${PS1- }"
 
31
 
 
32
# load environment 
 
33
 
 
34
. ${HOME}/.${1}
 
35
 
 
36
# define UPPER and lower-case environment variables with the project name
 
37
 
 
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}}}
 
43
 
 
44
eval test "X\${${1}}" != X || { 
 
45
    echo "${0}: ${HOME}/.${1} should set '${1}' or '${_PNAME_}'" 1>&2; exit 1
 
46
}
 
47
 
 
48
export ${1} MANPATH PATH ${_PNAME_}
 
49
 
 
50
# become a new shell
 
51
 
 
52
echo "Entering project '${1}' - leave with 'exit' or 'control-d'" 1>&2
 
53
 
 
54
exec ${SHELL} 
 
55
 
 
56
echo "project ${1} NOT entered" 1>&2; exit 1;
 
57
 
 
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.
 
71
#
 
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.
 
77
#
 
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.
 
81
#
 
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.
 
97
#
 
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)
 
145
#--