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

Annotation of /FigCommon/configure-env

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download)

1 : efrank 1.1 #!/bin/sh
2 :    
3 :     #
4 :     # FIG/SEED configuration script
5 :     #
6 :     # This script takes as an argument the name of the environment
7 :     # that we are configuring for.
8 :     #
9 :     # If no argument is passed, a list of valid environment names will be
10 :     # displayed.
11 :     #
12 :     #
13 :     # We configure the following files (all paths relative to the top
14 :     # of the FIGdisk directory):
15 :     #
16 :     # fig-user-env.sh
17 :     # FIG/Packages/FIG_Config.pm
18 :     # FIG/Packages/FIG_Config.py
19 :     # FIG/tool_hdr
20 :     # FIG/tool_hdr_py
21 :     # bin/start-servers
22 :     # bin/stop-servers
23 :     #
24 :     #
25 :    
26 :     #
27 :     # Make sure we're running from a real FIGdisk directory.
28 :     #
29 :     if [ ! -d env -o ! -d FIG ] ; then
30 :     echo "Please run $0 from a FIGdisk directory"
31 :     exit
32 :     fi
33 :    
34 :    
35 :     #
36 :     # Determine what environments are present.
37 :     #
38 :    
39 :     AvailableEnvironments=""
40 :     for d in env/* ; do
41 :     e=`basename $d`
42 :     AvailableEnvironments="$AvailableEnvironments $e"
43 :     done
44 :    
45 :     if [ $# -eq 0 ] ; then
46 :     echo "Available environments: $AvailableEnvironments"
47 :     exit
48 :     fi
49 :    
50 :     if [ $# -gt 1 ] ; then
51 :     echo "Usage: $0 environment-name"
52 :     echo "Available environments: $AvailableEnvironments"
53 :     exit
54 :     fi
55 :    
56 :     #
57 :     # Check to see if the user picked a valid environment.
58 :     #
59 :    
60 :     if [ ! -d "env/$1" ] ; then
61 :     echo "Invalid environment name $1"
62 :     echo "Available environments: $AvailableEnvironments"
63 :     exit
64 :     fi
65 :    
66 :     Env=$1
67 :    
68 :     #
69 :     # Figure out where we are; set the FIG_HOME and
70 :     # EnvDir values.
71 :     #
72 :    
73 :     FIG_HOME=`pwd`
74 :     echo "Using FIG_HOME=$FIG_HOME"
75 :    
76 :     EnvDir=$FIG_HOME/env/$Env
77 :    
78 :     if [ ! -d $EnvDir ] ; then
79 :     echo "Environment directory $Env does not exist, exiting"
80 :     exit
81 :     fi
82 :    
83 :     #
84 :     # Define the tool_hdr locations.
85 :     #
86 :    
87 :     ToolHeaderPerl=$FIG_HOME/FIG/tool_hdr
88 :     ToolHeaderPython=$FIG_HOME/FIG/tool_hdr_py
89 :    
90 :    
91 :     #
92 :     # Find python. It might be in the env dir, or it might be in the system.
93 :     #
94 :    
95 :     if [ -x "$EnvDir/bin/python" ] ; then
96 :     PythonPath=$EnvDir/bin/python
97 :     else
98 :     PythonPath=`which python`
99 :     fi
100 :    
101 :     if [ ! -x "$PythonPath" ] ; then
102 :     echo "Could not find working python at $PythonPath"
103 :     exit
104 :     fi
105 :    
106 :     #
107 :     # Find perl. It might be in the env dir, or it might be in the system.
108 :     #
109 :    
110 :     if [ -x "$EnvDir/bin/perl" ] ; then
111 :     PerlPath=$EnvDir/bin/perl
112 :     else
113 :     PerlPath=`which perl`
114 :     fi
115 :    
116 :     if [ ! -x "$PerlPath" ] ; then
117 :     echo "Could not find working perl at $PerlPath"
118 :     exit
119 :     fi
120 :    
121 :     #
122 :     # Compute python version.
123 :     #
124 :    
125 :     PythonVersion=`$PythonPath -c 'import sys; print "%d.%d" % (sys.version_info[:2])'`
126 :    
127 :     #
128 :     # Hostname information.
129 :     #
130 :    
131 :     MyHostname=`hostname`
132 :     MyBaseURL="http://$MyHostname"
133 :    
134 :     #
135 :     # Compute some paths.
136 :     #
137 :    
138 :     UserPath="$FIG_HOME/FIG/bin:$FIG_HOME/bin:$EnvDir/bin"
139 :     BLASTMAT="$FIG_HOME/BLASTMAT"
140 :     OurPythonStuff="$FIG_HOME/FIG/Packages:$EnvDir/lib/python$PythonVersion/site-packages"
141 :    
142 :     #
143 :     # fig-user-env.sh
144 :     #
145 :    
146 :     cat <<EOF >fig-user-env.sh
147 :     export FIG_HOME=$FIG_HOME
148 :     export FIG_ENVIRONMENT=$EnvDir
149 :     export FIG_PYTHON=$PythonPath
150 :     export FIG_PERL=$PerlPath
151 :    
152 :     export PATH=\${PATH}:$UserPath
153 :    
154 :     DELIM=
155 :     if [ -n "\$PYTHONPATH" ] ; then
156 :     DELIM=:
157 :     fi
158 :     export PYTHONPATH=\${PYTHONPATH}\${DELIM}$OurPythonStuff
159 :    
160 :     export BLASTMAT=$BLASTMAT
161 :    
162 :     EOF
163 :    
164 :     #
165 :     # FIG_Config.pm
166 :     #
167 :    
168 :     cat <<EOF > FIG/Packages/FIG_Config.pm
169 :     package FIG_Config;
170 :    
171 :     # Each setting of a variable MUST be on a single line. We use code during
172 :     # updates to salvage local settings, which will lead to a disaster if you
173 :     # do not conform to this rule.
174 :    
175 :     \$fig_disk = "$FIG_HOME";
176 :     \$blastmat = "\$fig_disk/BLASTMAT";
177 :     \$fig = "\$fig_disk/FIG";
178 :     \$bin = "\$fig/bin";
179 :     \$ext_bin = "$EnvDir/bin";
180 :     \$data = "\$fig/Data";
181 :     \$global = "\$data/Global";
182 :     \$organisms = "\$data/Organisms";
183 :     \$RC = "\$fig_disk/FIG/ResolutionCenter";
184 :     \$NR = "\$fig_disk/FIG/NR";
185 :     \$temp = "\$fig_disk/FIG/Tmp";
186 :     \$temp_url = "$MyBaseURL/FIG-Tmp";
187 :     \$cgi_url = "$MyBaseURL/FIG";
188 :    
189 :     EOF
190 :    
191 :     #
192 :     # FIG_Config.py
193 :     #
194 :    
195 :     cat <<EOF > FIG/Packages/FIG_Config.py
196 :    
197 :     import os.path
198 :    
199 :     # Each setting of a variable MUST be on a single line. We use code during
200 :     # updates to salvage local settings, which will lead to a disaster if you
201 :     # do not conform to this rule.
202 :    
203 :     fig_disk = "$FIG_HOME"
204 :     blastmat = os.path.join(fig_disk, "BLASTMAT")
205 :     fig = os.path.join(fig_disk, "FIG")
206 :     bin = os.path.join(fig, "bin")
207 :     ext_bin = os.path.join("$EnvDir", "bin")
208 :     data = os.path.join(fig, "Data")
209 :     global_dir = os.path.join(data, "Global")
210 :     organisms = os.path.join(data, "Organisms")
211 :     RC = os.path.join(fig, "ResolutionCenter")
212 :     NR = os.path.join(fig, "NR")
213 :     temp = os.path.join(fig, "Tmp")
214 :     temp_url = "$MyBaseURL/FIG-Tmp"
215 :     cgi_url = "$MyBaseURL/FIG"
216 :    
217 :     EOF
218 :    
219 :     #
220 :     # Tool header.
221 :     #
222 :    
223 :     cat <<EOF > $ToolHeaderPerl
224 :     #!$PerlPath
225 :    
226 :     use Data::Dumper;
227 :     use Carp;
228 :    
229 :     use lib "$FIG_HOME/FIG/Packages";
230 :    
231 :     use FIG_Config;
232 :    
233 :     EOF
234 :    
235 :     cat <<EOF > $ToolHeaderPython
236 :     #!$PythonPath
237 :    
238 :    
239 :     EOF
240 :    
241 :     #
242 :     # Start and stop servers scripts.
243 :     #
244 :    
245 :     cat <<EOF >bin/start-servers
246 :     #!/bin/sh
247 :    
248 :     EOF
249 :     chmod +x bin/start-servers
250 :    
251 :     cat <<EOF >bin/stop-servers
252 :     #!/bin/sh
253 :    
254 :     EOF
255 :     chmod +x bin/stop-servers
256 :    
257 :    
258 :     #
259 :     # Do environment-specific configurations.
260 :     #
261 :    
262 :     if [ -f $EnvDir/configure-env-specific ] ; then
263 :     . $EnvDir/configure-env-specific
264 :     fi
265 :    
266 :    
267 :     #
268 :     # Make sure this file ends properly for a perl module.
269 :     #
270 :     echo "1;" >> FIG/Packages/FIG_Config.pm
271 :    
272 :     #
273 :     # We're set. Go ahead and run make in the bin and CGI dirs to regenerate
274 :     # scripts from tool_hdr.
275 :     #
276 :    
277 :     for tooldir in FIG/bin FIG/CGI ; do
278 :     (cd $tooldir; make)
279 :     done

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3