Changes in Documentation/html/_modules/install.html [08c9091:903ed4f] in flex_extract.git
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Documentation/html/_modules/install.html
r08c9091 r903ed4f 181 181 <span class="c1"># June 2020 - Anne Philipp</span> 182 182 <span class="c1"># - renamed "convert" functions to "fortran" functions</span> 183 <span class="c1"># - reconfigured mk_tarball to select *.template files instead 183 <span class="c1"># - reconfigured mk_tarball to select *.template files instead</span> 184 184 <span class="c1"># of *.nl and *.temp</span> 185 185 <span class="c1"># - added check for makefile settings</span> 186 <span class="c1"># August 2020 - Leopold Haimberger</span> 187 <span class="c1"># - added a new installation section for system installation (if-else block)</span> 188 <span class="c1"># - read new argument from command line</span> 189 <span class="c1"># - write .setup.rc for a system installation into Run directory</span> 190 <span class="c1"># - copy executables to system path and user files to user path</span> 186 191 <span class="c1">#</span> 187 192 <span class="c1"># @License:</span> … … 237 242 <span class="kn">import</span> <span class="nn">subprocess</span> 238 243 <span class="kn">import</span> <span class="nn">tarfile</span> 244 <span class="kn">import</span> <span class="nn">shutil</span> 239 245 <span class="kn">from</span> <span class="nn">argparse</span> <span class="kn">import</span> <span class="n">ArgumentParser</span><span class="p">,</span> <span class="n">ArgumentDefaultsHelpFormatter</span> 240 246 … … 244 250 <span class="kn">from</span> <span class="nn">Classes.UioFiles</span> <span class="kn">import</span> <span class="n">UioFiles</span> 245 251 <span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="kn">import</span> <span class="p">(</span><span class="n">make_dir</span><span class="p">,</span> <span class="n">put_file_to_ecserver</span><span class="p">,</span> <span class="n">submit_job_to_ecserver</span><span class="p">,</span> 246 <span class="n">silent_remove</span><span class="p">,</span> <span class="n">execute_subprocess</span><span class="p">,</span> <span class="n">none_or_str</span><span class="p">)</span> 252 <span class="n">silent_remove</span><span class="p">,</span> <span class="n">execute_subprocess</span><span class="p">,</span> <span class="n">none_or_str</span><span class="p">,</span> 253 <span class="n">overwrite_lines_in_file</span><span class="p">,</span> <span class="n">check_for_string_in_file</span><span class="p">)</span> 247 254 248 255 <span class="c1"># ------------------------------------------------------------------------------</span> … … 265 272 <span class="n">check_install_conditions</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> 266 273 267 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o ">!=</span> <span class="s1">'local'</span><span class="p">:</span> <span class="c1"># ecgate or cca</span>274 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'local'</span><span class="p">,</span> <span class="s1">'syslocal'</span><span class="p">]:</span> <span class="c1"># ecgate or cca</span> 268 275 <span class="n">install_via_gateway</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> 269 276 <span class="k">else</span><span class="p">:</span> <span class="c1"># local</span> 270 277 <span class="n">install_local</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> 271 278 279 <span class="nb">print</span><span class="p">(</span><span class="s2">"SUCCESS: INSTALLATION FINISHED!"</span><span class="p">)</span> 280 272 281 <span class="k">return</span></div> 273 282 … … 290 299 <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">'--target'</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s1">'install_target'</span><span class="p">,</span> 291 300 <span class="nb">type</span><span class="o">=</span><span class="n">none_or_str</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> 292 <span class="n">help</span><span class="o">=</span><span class="s2">"Valid targets: local | ecgate | cca , </span><span class="se">\</span>301 <span class="n">help</span><span class="o">=</span><span class="s2">"Valid targets: syslocal | local | ecgate | cca , </span><span class="se">\</span> 293 302 <span class="s2"> the latter two are at ECMWF"</span><span class="p">)</span> 294 303 <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--makefile"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"makefile"</span><span class="p">,</span> … … 312 321 <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--installdir"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"installdir"</span><span class="p">,</span> 313 322 <span class="nb">type</span><span class="o">=</span><span class="n">none_or_str</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> 314 <span class="n">help</span><span class="o">=</span><span class="s1">'Root directory of the '</span>323 <span class="n">help</span><span class="o">=</span><span class="s1">'Root (user) directory of the '</span> 315 324 <span class="s1">'flex_extract installation'</span><span class="p">)</span> 325 <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--sysinstalldir"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"sysinstalldir"</span><span class="p">,</span> 326 <span class="nb">type</span><span class="o">=</span><span class="n">none_or_str</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> 327 <span class="n">help</span><span class="o">=</span><span class="s1">'System installation path; where '</span> 328 <span class="s1">'executables are stored.'</span><span class="p">)</span> 316 329 317 330 <span class="c1"># arguments for job submission to ECMWF, only needed by submit.py</span> … … 390 403 <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span> <span class="o">+</span> <span class="s1">'.tar'</span><span class="p">)</span> 391 404 392 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">==</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">:</span> 393 <span class="nb">print</span><span class="p">(</span><span class="s1">'WARNING: installdir has not been specified'</span><span class="p">)</span> 394 <span class="nb">print</span><span class="p">(</span><span class="s1">'flex_extract will be installed in here by compiling the '</span> <span class="o">+</span> 395 <span class="s1">'Fortran source in '</span> <span class="o">+</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">)</span> 396 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">)</span> 397 <span class="k">else</span><span class="p">:</span> <span class="c1"># creates the target working directory for flex_extract</span> 398 <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expandvars</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span> 399 <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">))</span> 400 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> <span class="o">!=</span> \ 401 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">):</span> 405 <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expandvars</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span> 406 <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)))</span> 407 <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expandvars</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span> 408 <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">)))</span> 409 410 <span class="c1"># this is standard installation into a single directory</span> 411 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">==</span> <span class="s1">'local'</span><span class="p">:</span> 412 413 <span class="c1"># installation into the current directory</span> 414 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> <span class="o">==</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">:</span> 415 <span class="nb">print</span><span class="p">(</span><span class="s1">'WARNING: installdir has not been specified'</span><span class="p">)</span> 416 <span class="nb">print</span><span class="p">(</span><span class="s1">'flex_extract will be installed in current dir by compiling the '</span> <span class="o">+</span> 417 <span class="s1">'Fortran source in '</span> <span class="o">+</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">)</span> 418 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">)</span> 419 <span class="c1"># installation into a different path</span> 420 <span class="k">elif</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> <span class="o">!=</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="p">:</span> 421 422 <span class="c1"># creates the target working directory for flex_extract</span> 402 423 <span class="n">mk_tarball</span><span class="p">(</span><span class="n">tar_file</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="p">)</span> 403 424 <span class="n">make_dir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span> … … 410 431 <span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_FORTRAN_SRC</span><span class="p">))</span> 411 432 412 <span class="c1"># Create Fortran executable</span> 413 <span class="nb">print</span><span class="p">(</span><span class="s1">'Install '</span> <span class="o">+</span> <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span> <span class="o">+</span> <span class="s1">' software at '</span> <span class="o">+</span> 414 <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">+</span> <span class="s1">' in directory '</span> <span class="o">+</span> 415 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 416 417 <span class="n">del_fortran_build</span><span class="p">(</span><span class="s1">'.'</span><span class="p">)</span> 418 <span class="n">mk_fortran_build</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">)</span> 433 <span class="c1"># Create Fortran executable</span> 434 <span class="nb">print</span><span class="p">(</span><span class="s1">'Install '</span> <span class="o">+</span> <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span> <span class="o">+</span> <span class="s1">' software at '</span> <span class="o">+</span> 435 <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">+</span> <span class="s1">' in directory '</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 436 437 <span class="n">del_fortran_build</span><span class="p">(</span><span class="s1">'.'</span><span class="p">)</span> 438 <span class="n">mk_fortran_build</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">)</span> 439 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="s1">'../../'</span><span class="p">)</span> 440 <span class="c1"># make sure that the correct calling of submit.py script is in run_local.sh</span> 441 <span class="n">overwrite_lines_in_file</span><span class="p">(</span><span class="s1">'Run/run_local.sh'</span><span class="p">,</span> 442 <span class="s1">'pyscript='</span><span class="p">,</span> <span class="s1">'pyscript=../Source/Python/submit.py</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 443 444 <span class="c1"># this is system installation were executables and user files are separated</span> 445 <span class="k">elif</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">==</span> <span class="s1">'syslocal'</span><span class="p">:</span> 446 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> <span class="o">==</span> <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span> <span class="p">:</span> 447 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'ERROR: System installation path is equal to user '</span> 448 <span class="s1">'installation path.</span><span class="se">\n</span><span class="s1"> Please change either the system '</span> 449 <span class="s1">'installation path or use installation target "local".'</span><span class="p">)</span> 450 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> <span class="o">==</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="p">:</span> 451 <span class="nb">print</span><span class="p">(</span><span class="s1">'Flex_extract will be installed in current directory!'</span><span class="p">)</span> 452 <span class="k">else</span><span class="p">:</span> <span class="c1"># install user part in different dir</span> 453 <span class="nb">print</span><span class="p">(</span><span class="s1">'Flex_extract will be installed in '</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="p">)</span> 454 455 <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">)</span> 456 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">):</span> 457 <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)</span> 458 459 <span class="c1"># copy all files except Python and Fortranfiles to this dir</span> 460 <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">,</span> 461 <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span> <span class="n">symlinks</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> 462 <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">'Source'</span><span class="p">))</span> 463 <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">'.git'</span><span class="p">))</span> 464 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span> <span class="s1">'*~'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">:</span> 465 <span class="n">silent_remove</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> 466 467 <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">'setup.sh'</span><span class="p">))</span> 468 <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">'setup_local.sh'</span><span class="p">))</span> 469 470 <span class="c1"># configure run_local script correctly</span> 471 <span class="c1"># check if source of system config file is already in run_local.sh,</span> 472 <span class="c1"># if not, add it</span> 473 <span class="k">if</span> <span class="ow">not</span> <span class="n">check_for_string_in_file</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">'Run/run_local.sh'</span><span class="p">),</span> 474 <span class="s1">'source .setup.rc'</span><span class="p">):</span> 475 <span class="n">overwrite_lines_in_file</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">'Run/run_local.sh'</span><span class="p">),</span> 476 <span class="s1">'# PATH TO SUBMISSION SCRIPT'</span><span class="p">,</span> 477 <span class="s1">'# PATH TO SUBMISSION SCRIPT</span><span class="se">\n</span><span class="s1">source '</span><span class="o">+</span><span class="n">_config</span><span class="o">.</span><span class="n">FILE_SYS_CONFIG</span><span class="o">+</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 478 <span class="c1"># make sure that the correct calling of submit.py script is in run_local.sh</span> 479 <span class="n">overwrite_lines_in_file</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">'Run/run_local.sh'</span><span class="p">),</span> 480 <span class="s1">'pyscript='</span><span class="p">,</span> <span class="s1">'pyscript=submit.py</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 481 482 <span class="c1"># change permission for file to executable</span> 483 <span class="n">execute_subprocess</span><span class="p">([</span><span class="s1">'chmod'</span><span class="p">,</span> <span class="s1">'0775'</span><span class="p">,</span> 484 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">),</span><span class="s1">'Run/run_local.sh'</span><span class="p">)])</span> 485 486 487 <span class="c1"># create systemdir</span> 488 <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">,</span><span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">)</span> 489 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">):</span> 490 <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">)</span> 491 492 <span class="c1"># create setup file for running flex_extract with system installation</span> 493 <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">),</span><span class="s1">'Run/.setup.rc'</span><span class="p">),</span><span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">fio</span><span class="p">:</span> 494 <span class="n">fio</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'#!/bin/bash </span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 495 <span class="n">fio</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'export FLEXEXTRACT_USER_DIR='</span><span class="o">+</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)</span><span class="o">+</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 496 <span class="n">fio</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'export PATH='</span><span class="o">+</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">)</span><span class="o">+</span><span class="s1">'/Python:$</span><span class="si">{PATH}</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 497 <span class="n">fio</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'export PATH='</span><span class="o">+</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">)</span><span class="o">+</span><span class="s1">':$</span><span class="si">{PATH}</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 498 499 <span class="c1"># copy all Python and Fortranfiles to this dir</span> 500 <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_SOURCES</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">,</span> <span class="n">symlinks</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> 501 502 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">,</span><span class="s1">'Fortran'</span><span class="p">))</span> 503 <span class="c1"># Create Fortran executable</span> 504 <span class="nb">print</span><span class="p">(</span><span class="s1">'Install '</span> <span class="o">+</span> <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span> <span class="o">+</span> <span class="s1">' software as '</span> <span class="o">+</span> 505 <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">+</span> <span class="s1">' in directory '</span> <span class="o">+</span> 506 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 507 508 <span class="n">del_fortran_build</span><span class="p">(</span><span class="s1">'.'</span><span class="p">)</span> 509 <span class="n">mk_fortran_build</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">)</span> 510 511 <span class="n">outfile</span> <span class="o">=</span> <span class="p">[</span><span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span><span class="s1">'*.out'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 512 <span class="n">test</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">,</span><span class="s1">'calc_etadot'</span><span class="p">)</span> 513 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">outfile</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span> 514 <span class="nb">print</span><span class="p">(</span><span class="s1">'WARNING: Multiple executables for Fortran code are available!'</span><span class="p">)</span> 515 <span class="c1"># move executable one dir up and delete Fortran dir</span> 516 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="s1">'..'</span><span class="p">)</span> 517 <span class="n">shutil</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">outfile</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">,</span><span class="s1">'calc_etadot'</span><span class="p">))</span> 518 <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">),</span><span class="s1">'Fortran'</span><span class="p">))</span> 419 519 420 520 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> … … 451 551 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> 452 552 453 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="ow">and</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o ">!=</span> <span class="s1">'local'</span><span class="p">:</span>553 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="ow">and</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'local'</span><span class="p">,</span> <span class="s1">'syslocal'</span><span class="p">]:</span> 454 554 <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">ecuid</span><span class="p">:</span> 455 555 <span class="nb">print</span><span class="p">(</span><span class="s1">'Please enter your ECMWF user id and group id '</span> … … 467 567 <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">:</span> 468 568 <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="s1">'$</span><span class="si">{HOME}</span><span class="s1">'</span> 469 <span class="k">el se</span><span class="p">:</span> <span class="c1"># local</span>569 <span class="k">elif</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">==</span> <span class="s1">'local'</span><span class="p">:</span> 470 570 <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">:</span> 471 571 <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span> 572 <span class="k">elif</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">==</span> <span class="s1">'syslocal'</span><span class="p">:</span> 573 <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">:</span> 574 <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span> 575 <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">:</span> 576 <span class="nb">print</span><span class="p">(</span><span class="s1">'ERROR: System installation was selected but '</span> 577 <span class="s1">'no system installation path was defined.'</span><span class="p">)</span> 578 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">()</span> 472 579 473 580 <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">:</span> … … 485 592 <span class="k">else</span><span class="p">:</span> 486 593 <span class="k">pass</span> 487 594 488 595 <span class="k">return</span></div> 489 596 … … 877 984 <span class="nb">print</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> 878 985 <span class="k">else</span><span class="p">:</span> 879 <span class="n">execute_subprocess</span><span class="p">([</span><span class="s1">'ls'</span><span class="p">,</span> <span class="s1">'-l'</span><span class="p">,</span> 986 <span class="n">execute_subprocess</span><span class="p">([</span><span class="s1">'ls'</span><span class="p">,</span> <span class="s1">'-l'</span><span class="p">,</span> 880 987 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src_path</span><span class="p">,</span> <span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span><span class="p">)],</span> 881 988 <span class="n">error_msg</span><span class="o">=</span><span class="s1">'FORTRAN EXECUTABLE COULD NOT BE FOUND!'</span><span class="p">)</span>
Note: See TracChangeset
for help on using the changeset viewer.