[Bio] / FigCommon / configure-env Repository:
ViewVC logotype

Annotation of /FigCommon/configure-env

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (view) (download)

1 : efrank 1.1 #!/bin/sh
2 : olson 1.5 #
3 :     # Copyright (c) 2003-2006 University of Chicago and Fellowship
4 :     # for Interpretations of Genomes. All Rights Reserved.
5 :     #
6 :     # This file is part of the SEED Toolkit.
7 :     #
8 :     # The SEED Toolkit is free software. You can redistribute
9 :     # it and/or modify it under the terms of the SEED Toolkit
10 :     # Public License.
11 :     #
12 :     # You should have received a copy of the SEED Toolkit Public License
13 :     # along with this program; if not write to the University of Chicago
14 :     # at info@ci.uchicago.edu or the Fellowship for Interpretation of
15 :     # Genomes at veronika@thefig.info or download a copy from
16 :     # http://www.theseed.org/LICENSE.TXT.
17 :     #
18 :    
19 : efrank 1.1
20 :     #
21 :     # FIG/SEED configuration script
22 :     #
23 :     # This script takes as an argument the name of the environment
24 : efrank 1.2 # that we are configuring for. It takes a second argument specifying
25 :     # the path to the code installation, i.e., the dirname under which we
26 :     # can find FigKernelPackages, bin, and CGI. This is no longer the same
27 :     # as where the data are installed
28 : efrank 1.1 #
29 :     # If no argument is passed, a list of valid environment names will be
30 :     # displayed.
31 :     #
32 :     #
33 :     # We configure the following files (all paths relative to the top
34 :     # of the FIGdisk directory):
35 :     #
36 : efrank 1.2 # NOTE: all these are now made in ., not in the directories shown.
37 :     # That's because this is now called from a makefile, e.g., and the
38 :     # caller is responsible for mv'ing them to the right place.
39 :     #
40 : efrank 1.1 # fig-user-env.sh
41 :     # FIG/Packages/FIG_Config.pm
42 :     # FIG/Packages/FIG_Config.py
43 :     # FIG/tool_hdr
44 :     # FIG/tool_hdr_py
45 :     # bin/start-servers
46 :     # bin/stop-servers
47 :     #
48 : efrank 1.2 ########################################################################
49 :    
50 :     #
51 :     # Where the output files are to be placed
52 :     #
53 :     GenDir=`pwd`
54 :    
55 :     #
56 :     # Figure out where we are; set the FIG_HOME and
57 :     # EnvDir values.
58 :     #
59 :     # Now that the code is in one place and the core stuff and
60 :     # data are in another, we can't assume we are building in
61 :     # the root of the FIG installation.
62 :     #
63 :     # Take it from the env for now. Ick
64 :    
65 :     #FIG_HOME=`pwd`
66 :     echo "Using FIG_HOME=$FIG_HOME"
67 :    
68 : efrank 1.1
69 :     #
70 : efrank 1.2 # Make sure we're running from a real FIGdisk directory, i.e.,
71 :     # that FIG_HOME is set right.
72 : efrank 1.1 #
73 : efrank 1.2 if [ ! -d $FIG_HOME/env -o ! -d $FIG_HOME/FIG ] ; then
74 :     echo "Please set FIG_HOME correctly"
75 : efrank 1.1 exit
76 :     fi
77 :    
78 :    
79 :     #
80 :     # Determine what environments are present.
81 :     #
82 :    
83 :     AvailableEnvironments=""
84 : efrank 1.2 for d in $FIG_HOME/env/* ; do
85 : efrank 1.1 e=`basename $d`
86 :     AvailableEnvironments="$AvailableEnvironments $e"
87 :     done
88 :    
89 : efrank 1.2 if [ $# -ne 2 ] ; then
90 :     echo "Usage: $0 environment-name pathToCodeInstallation"
91 : efrank 1.1 echo "Available environments: $AvailableEnvironments"
92 :     exit
93 :     fi
94 :    
95 :     #
96 :     # Check to see if the user picked a valid environment.
97 :     #
98 :    
99 : efrank 1.2 if [ ! -d "$FIG_HOME/env/$1" ] ; then
100 : efrank 1.1 echo "Invalid environment name $1"
101 :     echo "Available environments: $AvailableEnvironments"
102 :     exit
103 :     fi
104 :    
105 :     Env=$1
106 :    
107 : efrank 1.2 EnvDir=$FIG_HOME/env/$Env
108 :    
109 :     if [ ! -d $EnvDir ] ; then
110 :     echo "Environment directory $Env does not exist, exiting"
111 :     exit
112 :     fi
113 :    
114 : efrank 1.1 #
115 : efrank 1.2 # pull off the path to the base of the code installation
116 : efrank 1.1 #
117 :    
118 : efrank 1.2 CodeInstallDir=$2
119 : efrank 1.1
120 : efrank 1.2 if [ ! -d $CodeInstallDir ] ; then
121 :     echo "Code Installation Directory $CodeInstallDir does not exist, exiting"
122 :     exit
123 :     fi
124 :     if [ ! -d $CodeInstallDir/FigKernelPackages ] ; then
125 :     echo "No FigKernelPackages in $CodeInstallDir, exiting"
126 : efrank 1.1 exit
127 :     fi
128 :    
129 : efrank 1.2
130 : efrank 1.1 #
131 :     # Define the tool_hdr locations.
132 :     #
133 :    
134 : efrank 1.2 ToolHeaderPerl=./tool_hdr
135 :     ToolHeaderPython=./tool_hdr_py
136 : efrank 1.1
137 :    
138 :     #
139 :     # Find python. It might be in the env dir, or it might be in the system.
140 :     #
141 :    
142 :     if [ -x "$EnvDir/bin/python" ] ; then
143 :     PythonPath=$EnvDir/bin/python
144 :     else
145 :     PythonPath=`which python`
146 :     fi
147 :    
148 :     if [ ! -x "$PythonPath" ] ; then
149 :     echo "Could not find working python at $PythonPath"
150 :     exit
151 :     fi
152 :    
153 :     #
154 :     # Find perl. It might be in the env dir, or it might be in the system.
155 :     #
156 :    
157 :     if [ -x "$EnvDir/bin/perl" ] ; then
158 :     PerlPath=$EnvDir/bin/perl
159 :     else
160 :     PerlPath=`which perl`
161 :     fi
162 :    
163 :     if [ ! -x "$PerlPath" ] ; then
164 :     echo "Could not find working perl at $PerlPath"
165 :     exit
166 :     fi
167 :    
168 :     #
169 :     # Compute python version.
170 :     #
171 :    
172 :     PythonVersion=`$PythonPath -c 'import sys; print "%d.%d" % (sys.version_info[:2])'`
173 :    
174 :     #
175 :     # Hostname information.
176 :     #
177 :    
178 :     MyHostname=`hostname`
179 :     MyBaseURL="http://$MyHostname"
180 :    
181 :     #
182 :     # Compute some paths.
183 :     #
184 :    
185 : efrank 1.2 UserPath="$CodeInstallDir/bin/$RTARCH:$FIG_HOME/FIG/bin:$FIG_HOME/bin:$EnvDir/bin"
186 : efrank 1.1 BLASTMAT="$FIG_HOME/BLASTMAT"
187 : efrank 1.2 OurPythonStuff="$CodeInstallDir/lib/$RTARCH:$EnvDir/lib/python$PythonVersion/site-packages"
188 : efrank 1.1
189 :     #
190 :     # fig-user-env.sh
191 :     #
192 :    
193 :     cat <<EOF >fig-user-env.sh
194 :     export FIG_HOME=$FIG_HOME
195 :     export FIG_ENVIRONMENT=$EnvDir
196 :     export FIG_PYTHON=$PythonPath
197 :     export FIG_PERL=$PerlPath
198 :    
199 :     export PATH=\${PATH}:$UserPath
200 :    
201 :     DELIM=
202 :     if [ -n "\$PYTHONPATH" ] ; then
203 :     DELIM=:
204 :     fi
205 :     export PYTHONPATH=\${PYTHONPATH}\${DELIM}$OurPythonStuff
206 :    
207 :     export BLASTMAT=$BLASTMAT
208 :    
209 :     EOF
210 :    
211 :     #
212 : efrank 1.3 # fig-user-env.csh
213 :     #
214 :    
215 :     cat <<EOF >fig-user-env.csh
216 :    
217 :     #
218 :     # This file is automatically generated by configure-env
219 :     # Do not edit by hand, or changes may be lost.
220 :     #
221 :    
222 :     setenv FIG_HOME $FIG_HOME
223 :     setenv FIG_ENVIRONMENT $EnvDir
224 :     setenv FIG_PYTHON $PythonPath
225 :     setenv FIG_PERL $PerlPath
226 :    
227 :     setenv PATH \${PATH}:$UserPath
228 :    
229 :     if (\$?PYTHONPATH) then
230 :     setenv PYTHONPATH \${PYTHONPATH}:$OurPythonStuff
231 :     else
232 :     setenv PYTHONPATH $OurPythonStuff
233 :     endif
234 :    
235 :     if (\$?LD_LIBRARY_PATH) then
236 :     setenv LD_LIBRARY_PATH \${LD_LIBRARY_PATH}:$EnvDir/lib
237 :     else
238 :     setenv LD_LIBRARY_PATH $EnvDir/lib
239 :     endif
240 :    
241 :     setenv BLASTMAT $BLASTMAT
242 :    
243 :     EOF
244 :    
245 :    
246 :     #
247 : efrank 1.1 # FIG_Config.pm
248 :     #
249 :    
250 : efrank 1.2 cat <<EOF > FIG_Config.pm
251 : efrank 1.1 package FIG_Config;
252 :    
253 :     # Each setting of a variable MUST be on a single line. We use code during
254 :     # updates to salvage local settings, which will lead to a disaster if you
255 :     # do not conform to this rule.
256 :    
257 :     \$fig_disk = "$FIG_HOME";
258 :     \$blastmat = "\$fig_disk/BLASTMAT";
259 :     \$fig = "\$fig_disk/FIG";
260 : efrank 1.2 \$bin = "$CodeInstallDir/bin/$RTARCH";
261 : efrank 1.1 \$ext_bin = "$EnvDir/bin";
262 :     \$data = "\$fig/Data";
263 :     \$global = "\$data/Global";
264 :     \$organisms = "\$data/Organisms";
265 :     \$RC = "\$fig_disk/FIG/ResolutionCenter";
266 :     \$NR = "\$fig_disk/FIG/NR";
267 :     \$temp = "\$fig_disk/FIG/Tmp";
268 :     \$temp_url = "$MyBaseURL/FIG-Tmp";
269 :     \$cgi_url = "$MyBaseURL/FIG";
270 :    
271 :     EOF
272 :    
273 :     #
274 :     # FIG_Config.py
275 :     #
276 :    
277 : efrank 1.2 cat <<EOF > FIG_Config.py
278 : efrank 1.1
279 :     import os.path
280 :    
281 :     # Each setting of a variable MUST be on a single line. We use code during
282 :     # updates to salvage local settings, which will lead to a disaster if you
283 :     # do not conform to this rule.
284 :    
285 :     fig_disk = "$FIG_HOME"
286 :     blastmat = os.path.join(fig_disk, "BLASTMAT")
287 :     fig = os.path.join(fig_disk, "FIG")
288 : efrank 1.4 bin = "$CodeInstallDir/bin/$RTARCH/"
289 : efrank 1.1 ext_bin = os.path.join("$EnvDir", "bin")
290 :     data = os.path.join(fig, "Data")
291 :     global_dir = os.path.join(data, "Global")
292 :     organisms = os.path.join(data, "Organisms")
293 :     RC = os.path.join(fig, "ResolutionCenter")
294 :     NR = os.path.join(fig, "NR")
295 :     temp = os.path.join(fig, "Tmp")
296 :     temp_url = "$MyBaseURL/FIG-Tmp"
297 :     cgi_url = "$MyBaseURL/FIG"
298 :    
299 :     EOF
300 :    
301 :     #
302 :     # Tool header.
303 :     #
304 :    
305 :     cat <<EOF > $ToolHeaderPerl
306 :     #!$PerlPath
307 :    
308 :     use Data::Dumper;
309 :     use Carp;
310 :    
311 : efrank 1.2 use lib "$CodeInstallDir/lib/$RTARCH/FigKernelPackages";
312 : efrank 1.1
313 :     use FIG_Config;
314 :    
315 :     EOF
316 :    
317 :     cat <<EOF > $ToolHeaderPython
318 :     #!$PythonPath
319 :    
320 : efrank 1.4 import sys
321 :     sys.path.append("$CodeInstallDir/lib/$RTARCH/FigCommon")
322 : efrank 1.1
323 :     EOF
324 :    
325 :     #
326 :     # Start and stop servers scripts.
327 :     #
328 :    
329 : efrank 1.2 cat <<EOF > start-servers
330 : efrank 1.1 #!/bin/sh
331 :    
332 :     EOF
333 : efrank 1.2 chmod +x start-servers
334 : efrank 1.1
335 : efrank 1.2 cat <<EOF > stop-servers
336 : efrank 1.1 #!/bin/sh
337 :    
338 :     EOF
339 : efrank 1.2 chmod +x stop-servers
340 : efrank 1.1
341 :    
342 :     #
343 : efrank 1.2 # Do environment-specific configurations. We pass the path in
344 :     # which the config tools are to find the files to modify
345 : efrank 1.1 #
346 :    
347 :     if [ -f $EnvDir/configure-env-specific ] ; then
348 : efrank 1.2 . $EnvDir/configure-env-specific $GenDir
349 : efrank 1.1 fi
350 :    
351 :    
352 :     #
353 :     # Make sure this file ends properly for a perl module.
354 :     #
355 : efrank 1.2 echo "1;" >> FIG_Config.pm
356 : efrank 1.1

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3