ec2_post_init
Populate STScI EC2 instances with ease
astroconda.inc.sh File Reference

Astroconda control functions. More...

Go to the source code of this file.

Functions

 ac_platform ()
 URL to astroconda releases Git repository (or local file system) More...
 
 ac_releases_clone ()
 Clone the astroconda-releases repository. More...
 
 ac_releases_pipeline_exists ()
 Check if a named pipeline exists in astroconda-releases. More...
 
 ac_releases_pipeline_release_exists (pipeline_name, pipeline_release)
 Check if a named release exists in a astroconda-releases pipeline. More...
 
 ac_releases_data_analysis (series)
 Get path to data analysis release file. More...
 
 ac_releases_data_analysis_environ (series)
 Generate conda environment name. More...
 
 ac_releases_jwst (series)
 Get path to JWST pipeline release file(s) More...
 
 ac_releases_jwst_environ (series)
 Generate conda environment name. More...
 
 ac_releases_hst (series)
 Get path to HST pipeline release file. More...
 
 ac_releases_hst_environ (series)
 Generate conda environment name. More...
 
 ac_releases_install_hst (version)
 Install the HST pipeline. More...
 
 ac_releases_install_jwst (version)
 Install the JWST pipeline. More...
 
 ac_releases_install_data_analysis (version)
 Install the data analysis pipeline. More...
 

Detailed Description

Astroconda control functions.

HST Example

#!/usr/bin/env bash
source ec2pinit.inc.sh
# Update system packages
# Install additional packages
gcc \
git \
sudo
# "become" the target user
sys_user_push ec2-user
miniconda_root=$HOME/miniconda3
miniconda_version="py39_4.12.0"
# Install miniconda
mc_install "$miniconda_version" "$miniconda_root"
# Configure miniconda for user
mc_initialize "$miniconda_root"
# Install HST pipeline release
export CFLAGS="-std=gnu99"
# Return to root user
# Reset target user's home directory permissions
mc_initialize(dest)
Configures user account to load conda at login.
mc_install(version, dest)
Installs Miniconda3.
ac_releases_install_hst(version)
Install the HST pipeline.
sys_user_pop()
Restore caller environment after sys_user_push()
Definition: system.inc.sh:69
sys_pkg_install(...)
Install a system package.
Definition: system.inc.sh:244
sys_user_push(name)
Lazily "become" another user.
Definition: system.inc.sh:53
sys_reset_home_ownership(user)
Resets ownership of a user (after sys_user_push()/sys_user_pop())
Definition: system.inc.sh:126
sys_pkg_update_all()
Update all system packages.
Definition: system.inc.sh:261

JWST Example

#!/usr/bin/env bash
source ec2pinit.inc.sh
# Update system packages
# Install additional packages
gcc \
git \
sudo
# "become" the target user
sys_user_push ec2-user
miniconda_root=$HOME/miniconda3
miniconda_version="py39_4.12.0"
# Install miniconda
mc_install "$miniconda_version" "$miniconda_root"
# Configure miniconda for user
mc_initialize "$miniconda_root"
# Install JWST pipeline release
export CFLAGS="-std=gnu99"
# Return to root user
# Reset target user's home directory permissions
ac_releases_install_jwst(version)
Install the JWST pipeline.

Data Analysis Example

#!/usr/bin/env bash
source ec2pinit.inc.sh
# Update system packages
# Install additional packages
gcc \
git \
sudo
# "become" the target user
sys_user_push ec2-user
miniconda_root=$HOME/miniconda3
miniconda_version="py39_4.12.0"
export CFLAGS="-std=gnu99"
# Install miniconda
mc_install "$miniconda_version" "$miniconda_root"
# Configure miniconda for user
mc_initialize "$miniconda_root"
# Fix recently introduced packaging bug 05/2022
sed --follow-symlinks -i 's/hsluv.*/hsluv==5.0.3/' $ac_releases_path/de/f/*.yml
# Install Data Analysis pipeline release
ac_releases_install_data_analysis "f"
# Return to root user
sys_user_pop
# Reset target user's home directory permissions
sys_reset_home_ownership ec2-user
ac_releases_clone()
Clone the astroconda-releases repository.

Definition in file astroconda.inc.sh.

Function Documentation

◆ ac_platform()

ac_platform ( )

URL to astroconda releases Git repository (or local file system)

Path where ec2pinit will store the astroconda releases repository

Get astroconda platform string

The value returned is the platform suffix of a pipeline release file name.

Return values
platformif supported platform is detected
unknownif platform is not supported

Definition at line 30 of file astroconda.inc.sh.

◆ ac_releases_clone()

ac_releases_clone ( )

Clone the astroconda-releases repository.

The destination is $ec2pinit_tempdir

See also
config.sh

Definition at line 48 of file astroconda.inc.sh.

◆ ac_releases_data_analysis()

ac_releases_data_analysis ( series  )

Get path to data analysis release file.

Parameters
seriesPipeline release name
Return values
latest_pathif series is undefined
pathif series is found

Definition at line 89 of file astroconda.inc.sh.

◆ ac_releases_data_analysis_environ()

ac_releases_data_analysis_environ ( series  )

Generate conda environment name.

Parameters
seriesPipeline release name
Return values
environment_nameif series exists
1if release cannot be found

Definition at line 114 of file astroconda.inc.sh.

◆ ac_releases_hst()

ac_releases_hst ( series  )

Get path to HST pipeline release file.

HST provides a platform dependent YAML configuration

Parameters
seriesPipeline release name
Return values
latest_pathif series is undefined
pathif series is found

Definition at line 181 of file astroconda.inc.sh.

◆ ac_releases_hst_environ()

ac_releases_hst_environ ( series  )

Generate conda environment name.

Parameters
seriesPipeline release name
Return values
environment_nameif series exists
1if release cannot be found

Definition at line 206 of file astroconda.inc.sh.

◆ ac_releases_install_data_analysis()

ac_releases_install_data_analysis ( version  )

Install the data analysis pipeline.

Parameters
versionpipeline release version

Definition at line 256 of file astroconda.inc.sh.

◆ ac_releases_install_hst()

ac_releases_install_hst ( version  )

Install the HST pipeline.

Parameters
versionpipeline release version

Definition at line 219 of file astroconda.inc.sh.

◆ ac_releases_install_jwst()

ac_releases_install_jwst ( version  )

Install the JWST pipeline.

Parameters
versionpipeline release version

Definition at line 235 of file astroconda.inc.sh.

◆ ac_releases_jwst()

ac_releases_jwst ( series  )

Get path to JWST pipeline release file(s)

JWST splits its installation into two files. This function returns two strings separated by new lines.

Parameters
seriesPipeline release name
Return values
latest_pathif series is undefined
pathsif series is found

Definition at line 131 of file astroconda.inc.sh.

◆ ac_releases_jwst_environ()

ac_releases_jwst_environ ( series  )

Generate conda environment name.

Parameters
seriesPipeline release name
Return values
environment_nameif series exists
1if release cannot be found

Definition at line 154 of file astroconda.inc.sh.

◆ ac_releases_pipeline_exists()

ac_releases_pipeline_exists ( )

Check if a named pipeline exists in astroconda-releases.

Return values
pathif pipeline exists
""if pipeline does not exist

Definition at line 60 of file astroconda.inc.sh.

◆ ac_releases_pipeline_release_exists()

ac_releases_pipeline_release_exists ( pipeline_name  ,
pipeline_release   
)

Check if a named release exists in a astroconda-releases pipeline.

Parameters
pipeline_namePipeline name
pipeline_releasePipeline release name
Return values
pathif release exists
""if release does not exist

Definition at line 74 of file astroconda.inc.sh.