Ticket #455: 118

File 118, 8.1 KB (added by dlove, 9 years ago)
Line 
1#!/bin/sh
2#
3# create Grid Engine settings.[c]sh file
4#
5#___INFO__MARK_BEGIN__
6##########################################################################
7#
8#  The Contents of this file are made available subject to the terms of
9#  the Sun Industry Standards Source License Version 1.2
10#
11#  Sun Microsystems Inc., March, 2001
12#
13#
14#  Sun Industry Standards Source License Version 1.2
15#  =================================================
16#  The contents of this file are subject to the Sun Industry Standards
17#  Source License Version 1.2 (the "License"); You may not use this file
18#  except in compliance with the License. You may obtain a copy of the
19#  License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
20#
21#  Software provided under this License is provided on an "AS IS" basis,
22#  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
23#  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
24#  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
25#  See the License for the specific provisions governing your rights and
26#  obligations concerning the Software.
27#
28#  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
29#
30#  Copyright: 2001 by Sun Microsystems, Inc.
31#
32#  All Rights Reserved.
33#
34##########################################################################
35#___INFO__MARK_END__
36#
37# $1 = base directory  where settings.[c]sh is created
38
39PATH=/bin:/usr/bin
40
41ErrUsage()
42{
43   while [ "$#" -ge 1 ]; do echo "$1"; shift; done
44   cat<<USAGE
45usage: ${0##*/} outdir
46    create Grid Engine settings.{csh,sh} files
47
48    \$SGE_ROOT must be set
49    \$SGE_CELL, \$SGE_QMASTER_PORT and \$SGE_EXECD_PORT must be set if used in your environment
50
51USAGE
52  exit 1
53}
54
55if [ "$#" != 1 ]; then
56   ErrUsage "(EE) requires exactly 1 argument"
57fi
58
59[ -d "$1" -a -w "$1" ] || {
60   ErrUsage "(EE) non-existent or non-writable outdir '$1'"
61}
62
63if [ -z "$SGE_ROOT" ]; then
64   ErrUsage "(EE) SGE_ROOT is not set"
65fi
66
67
68SP_CSH=$1/settings.csh
69SP_SH=$1/settings.sh
70
71#
72# C shell settings file
73#
74cat << FILE_HEADER > $SP_CSH
75# ------------------------------------------------------------------------
76# \$SGE_ROOT/\$SGE_CELL/common/settings.csh
77#
78# Set Grid Engine environment variables
79# Affected variables: PATH, MANPATH, SGE_ROOT
80#
81# ------------------------------------------------------------------------
82FILE_HEADER
83
84# set/unset variables
85for var in SGE_ROOT SGE_CELL SGE_QMASTER_PORT SGE_EXECD_PORT
86do
87   value=`eval echo '$'$var`
88   if [ -n "$value" ]; then
89      echo "setenv $var $value"                                 >> $SP_CSH
90   else
91      echo "unsetenv $var"                                      >> $SP_CSH
92   fi
93done
94
95
96echo ''                                                         >> $SP_CSH
97echo 'if ( -x $SGE_ROOT/util/arch ) then'                       >> $SP_CSH
98echo '   set arch = `$SGE_ROOT/util/arch`'                      >> $SP_CSH
99echo '   set path = ( $SGE_ROOT/bin/$arch $path )'              >> $SP_CSH
100echo ''                                                         >> $SP_CSH
101echo '   if (! $?MANPATH) then'                                 >> $SP_CSH
102echo '      setenv MANPATH `$SGE_ROOT/util/arch -m`'            >> $SP_CSH
103echo '   endif'                                                 >> $SP_CSH
104echo '   setenv MANPATH $SGE_ROOT/`$SGE_ROOT/util/arch -mt`:$MANPATH'      >> $SP_CSH
105echo '   ## -or-'                                               >> $SP_CSH
106echo '   # set mantype = `$SGE_ROOT/util/arch -mt`'             >> $SP_CSH
107echo '   # setenv MANPATH $SGE_ROOT/$mantype:$MANPATH'          >> $SP_CSH
108echo '   # unset mantype'                                       >> $SP_CSH
109echo ''                                                         >> $SP_CSH
110echo '   # library path for architectures w/o RUNPATH'          >> $SP_CSH
111echo '   switch ($arch)'                                        >> $SP_CSH
112echo '   case "sol*":'                                          >> $SP_CSH
113echo '   case "lx*":'                                           >> $SP_CSH
114echo '      breaksw'                                            >> $SP_CSH
115echo '   case "*":'                                             >> $SP_CSH
116echo '      set shlib_path_name = `$SGE_ROOT/util/arch -lib`'   >> $SP_CSH
117echo "      if ( \`eval echo '\$?'\$shlib_path_name\` ) then"   >> $SP_CSH
118echo "         set old_value = \`eval echo '\$'\$shlib_path_name\`"     >> $SP_CSH
119echo '         setenv $shlib_path_name "$SGE_ROOT/lib/$arch":"$old_value"'  >> $SP_CSH
120echo '      else'                                               >> $SP_CSH
121echo '         setenv $shlib_path_name $SGE_ROOT/lib/$arch'     >> $SP_CSH
122echo '      endif'                                              >> $SP_CSH
123echo '      unset old_value shlib_path_name'                    >> $SP_CSH
124echo '   endsw'                                                 >> $SP_CSH
125echo '   unset arch'                                            >> $SP_CSH
126echo 'else'                                                     >> $SP_CSH
127echo '   unsetenv SGE_ROOT'                                     >> $SP_CSH
128echo 'endif'                                                    >> $SP_CSH
129echo ''                                                         >> $SP_CSH
130echo '# ------------------------------------------------------------------------' >> $SP_CSH
131
132#
133# bourne shell settings file
134#
135cat << FILE_HEADER > $SP_SH
136# ------------------------------------------------------------------------
137# \$SGE_ROOT/\$SGE_CELL/common/settings.sh
138#
139# Set Grid Engine environment variables
140# Affected variables: PATH, MANPATH, SGE_ROOT
141#
142# ------------------------------------------------------------------------
143FILE_HEADER
144
145# set/unset variables
146for var in SGE_ROOT SGE_CELL SGE_QMASTER_PORT SGE_EXECD_PORT
147do
148   value=`eval echo '$'$var`
149   if [ -n "$value" ]; then
150      echo "$var=$value; export $var"                           >> $SP_SH
151   else
152      echo "unset $var"                                         >> $SP_SH
153   fi
154done
155
156echo ''                                                         >> $SP_SH
157echo 'if [ -x $SGE_ROOT/util/arch ]; then'                      >> $SP_SH
158echo '   arch=`$SGE_ROOT/util/arch`'                            >> $SP_SH
159echo '   PATH=$SGE_ROOT/bin/$arch:$PATH'                        >> $SP_SH
160echo '   : ${MANPATH:=`$SGE_ROOT/util/arch -m`}  # default manpath' >> $SP_SH
161echo '   MANPATH=$SGE_ROOT/`$SGE_ROOT/util/arch -mt`:$MANPATH'      >> $SP_SH
162echo '   export MANPATH PATH'                                   >> $SP_SH
163echo ''                                                         >> $SP_SH
164echo '   # library path for architectures w/o RUNPATH'          >> $SP_SH
165echo '   case "$arch" in'                                       >> $SP_SH
166echo '   sol*|lx*)'                                             >> $SP_SH
167echo '      ;;'                                                 >> $SP_SH
168echo '   *)'                                                    >> $SP_SH
169echo '      shlib_path_name=`$SGE_ROOT/util/arch -lib`'         >> $SP_SH
170echo "      old_value=\`eval echo '\$'\$shlib_path_name\`"      >> $SP_SH
171echo '      if [ -n "$old_value" ]; then'                       >> $SP_SH
172echo '         eval $shlib_path_name=$SGE_ROOT/lib/$arch:$old_value'    >> $SP_SH
173echo '      else'                                               >> $SP_SH
174echo '         eval $shlib_path_name=$SGE_ROOT/lib/$arch'       >> $SP_SH
175echo '      fi'                                                 >> $SP_SH
176echo '      export $shlib_path_name'                            >> $SP_SH
177echo '      unset old_value shlib_path_name'                    >> $SP_SH
178echo '      ;;'                                                 >> $SP_SH
179echo '   esac'                                                  >> $SP_SH
180echo '   unset arch'                                            >> $SP_SH
181echo 'else'                                                     >> $SP_SH
182echo '   unset SGE_ROOT'                                        >> $SP_SH
183echo 'fi'                                                       >> $SP_SH
184echo ''                                                         >> $SP_SH
185echo '# ------------------------------------------------------------------------' >> $SP_SH