|
8 | 8 | from configparser import ConfigParser |
9 | 9 |
|
10 | 10 | from mache import discover_machine |
11 | | -from mache.spack import make_spack_env, get_spack_script, \ |
12 | | - get_modules_env_vars_and_mpi_compilers |
| 11 | +from mache.machines.pre_conda import load_pre_conda_script |
| 12 | +from mache.spack import ( |
| 13 | + make_spack_env, |
| 14 | + get_spack_script, |
| 15 | + get_modules_env_vars_and_mpi_compilers, |
| 16 | +) |
13 | 17 | from mache.permissions import update_permissions |
14 | 18 | from shared import ( |
15 | 19 | check_call, |
@@ -282,9 +286,21 @@ def build_spack_env(config, machine, compiler, mpi, version, tmpdir): |
282 | 286 | return spack_base_path |
283 | 287 |
|
284 | 288 |
|
285 | | -def write_load_e3sm_unified(template_path, activ_path, conda_base, is_test, |
286 | | - version, activ_suffix, env_name, env_nompi, |
287 | | - sys_info, ext, machine, spack_script): |
| 289 | +def write_load_e3sm_unified( |
| 290 | + template_path, |
| 291 | + activ_path, |
| 292 | + conda_base, |
| 293 | + is_test, |
| 294 | + version, |
| 295 | + activ_suffix, |
| 296 | + env_name, |
| 297 | + env_nompi, |
| 298 | + sys_info, |
| 299 | + ext, |
| 300 | + machine, |
| 301 | + pre_conda_script, |
| 302 | + spack_script, |
| 303 | +): |
288 | 304 |
|
289 | 305 | try: |
290 | 306 | os.makedirs(activ_path) |
@@ -318,14 +334,17 @@ def write_load_e3sm_unified(template_path, activ_path, conda_base, is_test, |
318 | 334 | else: |
319 | 335 | env_type = 'SYSTEM' |
320 | 336 |
|
321 | | - script = template.render(conda_base=conda_base, env_name=env_name, |
322 | | - env_type=env_type, |
323 | | - script_filename=script_filename, |
324 | | - env_nompi=env_nompi, |
325 | | - spack='\n '.join(spack_script.split('\n')), |
326 | | - modules='\n '.join(sys_info['modules']), |
327 | | - env_vars=env_vars, |
328 | | - machine=machine) |
| 337 | + script = template.render( |
| 338 | + pre_conda_script=pre_conda_script, |
| 339 | + conda_base=conda_base, |
| 340 | + env_name=env_name, |
| 341 | + env_type=env_type, |
| 342 | + script_filename=script_filename, |
| 343 | + env_nompi=env_nompi, |
| 344 | + spack='\n '.join(spack_script.split('\n')), |
| 345 | + modules='\n '.join(sys_info['modules']), |
| 346 | + env_vars=env_vars, |
| 347 | + machine=machine) |
329 | 348 |
|
330 | 349 | # strip out redundant blank lines |
331 | 350 | lines = list() |
@@ -483,9 +502,21 @@ def main(): |
483 | 502 | else: |
484 | 503 | spack_script = '' |
485 | 504 |
|
| 505 | + pre_conda_script = load_pre_conda_script(machine=machine, ext=ext) |
| 506 | + |
486 | 507 | script_filename = write_load_e3sm_unified( |
487 | | - template_path, activ_path, conda_base, is_test, version, |
488 | | - activ_suffix, conda_env_name, env_nompi, sys_info, ext, machine, |
| 508 | + template_path, |
| 509 | + activ_path, |
| 510 | + conda_base, |
| 511 | + is_test, |
| 512 | + version, |
| 513 | + activ_suffix, |
| 514 | + conda_env_name, |
| 515 | + env_nompi, |
| 516 | + sys_info, |
| 517 | + ext, |
| 518 | + machine, |
| 519 | + pre_conda_script, |
489 | 520 | spack_script) |
490 | 521 | if ext == 'sh': |
491 | 522 | test_script_filename = script_filename |
|
0 commit comments