Skip to content
Snippets Groups Projects
Commit 3ca91f8a authored by Jan Ebert's avatar Jan Ebert
Browse files

Improve activation script resiliency

This way, it doesn't mess with the `curr_dir` in the `sbatch` script but
doesn't require a directory stack, all while not being influenced by
outside variables.
parent 871386bd
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env bash #!/usr/bin/env bash
if [ -z "$curr_dir" ]; then _curr_file="${BASH_SOURCE[0]:-${(%):-%x}}"
curr_file="${BASH_SOURCE[0]:-${(%):-%x}}" _curr_dir="$(dirname "$_curr_file")"
curr_dir="$(dirname "$curr_file")"
fi
venv_dir="$curr_dir"/env-"$SYSTEMNAME" venv_dir="$_curr_dir"/env-"$SYSTEMNAME"
[ "$(command -v deactivate)" ] && deactivate [ "$(command -v deactivate)" ] && deactivate
module --force purge module --force purge
if ! [ -f "$curr_dir"/modules.sh ]; then if ! [ -f "$_curr_dir"/modules.sh ]; then
echo "Cannot find \`$curr_dir/modules.sh\`; its existence is required." echo "Cannot find \`$_curr_dir/modules.sh\`; its existence is required."
return 1 return 1
fi fi
source "$curr_dir"/modules.sh source "$_curr_dir"/modules.sh
if ! [ -d "$venv_dir" ]; then if ! [ -d "$venv_dir" ]; then
echo "Please manually execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \ echo "Please manually execute \`nice bash ${_curr_dir@Q}/set_up.sh\`" \
"on a login node to create the \`venv\`." "on a login node to create the \`venv\`."
return 1 return 1
elif ! [ -f "$venv_dir"/bin/activate ]; then elif ! [ -f "$venv_dir"/bin/activate ]; then
echo "Something seems to be wrong with the \`venv\` at \`$venv_dir\`." \ echo "Something seems to be wrong with the \`venv\` at \`$venv_dir\`." \
"Please delete it (\`nice rm -rf ${venv_dir@Q}\`) and" \ "Please delete it (\`nice rm -rf ${venv_dir@Q}\`) and" \
"execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \ "execute \`nice bash ${_curr_dir@Q}/set_up.sh\`" \
"on a login node to re-create the \`venv\`." "on a login node to re-create the \`venv\`."
return 1 return 1
fi fi
......
#!/usr/bin/env bash #!/usr/bin/env bash
if [ -z "$curr_dir" ]; then _curr_file="${BASH_SOURCE[0]:-${(%):-%x}}"
curr_file="${BASH_SOURCE[0]:-${(%):-%x}}" _curr_dir="$(dirname "$_curr_file")"
curr_dir="$(dirname "$curr_file")"
fi
venv_dir="$curr_dir"/env-"$SYSTEMNAME" venv_dir="$_curr_dir"/env-"$SYSTEMNAME"
[ "$(command -v deactivate)" ] && deactivate [ "$(command -v deactivate)" ] && deactivate
module --force purge module --force purge
if ! [ -f "$curr_dir"/modules.sh ]; then if ! [ -f "$_curr_dir"/modules.sh ]; then
echo "Cannot find \`$curr_dir/modules.sh\`; its existence is required." echo "Cannot find \`$_curr_dir/modules.sh\`; its existence is required."
return 1 return 1
fi fi
source "$curr_dir"/modules.sh source "$_curr_dir"/modules.sh
if ! [ -d "$venv_dir" ]; then if ! [ -d "$venv_dir" ]; then
echo "Please manually execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \ echo "Please manually execute \`nice bash ${_curr_dir@Q}/set_up.sh\`" \
"on a login node to create the \`venv\`." "on a login node to create the \`venv\`."
return 1 return 1
elif ! [ -f "$venv_dir"/bin/activate ]; then elif ! [ -f "$venv_dir"/bin/activate ]; then
echo "Something seems to be wrong with the \`venv\` at \`$venv_dir\`." \ echo "Something seems to be wrong with the \`venv\` at \`$venv_dir\`." \
"Please delete it (\`nice rm -rf ${venv_dir@Q}\`) and" \ "Please delete it (\`nice rm -rf ${venv_dir@Q}\`) and" \
"execute \`nice bash ${curr_dir@Q}/set_up.sh\`" \ "execute \`nice bash ${_curr_dir@Q}/set_up.sh\`" \
"on a login node to re-create the \`venv\`." "on a login node to re-create the \`venv\`."
return 1 return 1
fi fi
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment