diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/heasoft.sh | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/scripts/heasoft.sh b/scripts/heasoft.sh new file mode 100755 index 0000000..54e295b --- /dev/null +++ b/scripts/heasoft.sh @@ -0,0 +1,68 @@ +#!/bin/sh +# +# A wrapper script for the HEASoft tools, to avoid the annoying +# conflicts between system libraries and the HEASoft bundled +# libraries due to the '$LD_LIBRARY_PATH' settings. +# +# This wrapper is inspired by CIAO. +# +# Weitian LI <liweitianux@live.com> +# Created: 2013-05-18 +# Updated: 2018-05-16 +# +# +# Setup: +# ------------------------------------------------------------------------ +# 1. Copy this wrapper to '~/.heasoft/heasoft.sh'. +# 2. Add the following shell function to your shell config file. +# NOTE: edit 'HEADAS' to match your case. +# +# Shell configuration: +# ------------------------------------------------------------------------ +# heainit() { +# local ld_lib_bak i tool +# local wrapper="${HOME}/.heasoft/heasoft.sh" +# local wrapper_dir=$(dirname ${wrapper}) +# local wrapper_name=$(basename ${wrapper}) +# if [ -z "${HEADAS}" ]; then +# ld_lib_bak=${LD_LIBRARY_PATH} +# export HEADAS="${HOME}/local/heasoft/default/PORTAL" +# source ${HEADAS}/headas-init.sh +# export LD_LIBRARY_PATH=${ld_lib_bak} +# export PATH="${wrapper_dir}:${PATH}" +# +# if [ ! -f "${wrapper}" ]; then +# echo "ERROR: wrapper '${wrapper}' not found!" +# return +# fi +# chmod u=rwx ${wrapper} +# +# echo "Initializing HEASoft from ${HEADAS} ..." +# for i in ${HEADAS}/bin/*; do +# tool=$(basename $i) +# ln -sf ${wrapper_name} ${wrapper_dir}/${tool} +# done +# rehash +# +# echo "HEASoft initialized." +# else +# echo "HEASoft already initialized from: ${HEADAS}" +# fi +# } +# ------------------------------------------------------------------------ + +TOOL="${0##*/}" +BIN_PATH="${HEADAS}/bin" +LD_LIBRARY_PATH="${HEADAS}/lib" + +if [ -z "${HEADAS}" ]; then + echo "ERROR: environment variable 'HEADAS' not set!" >&2 + exit 1 +elif [ -x "${BIN_PATH}/${TOOL}" ]; then + export LD_LIBRARY_PATH + exec ${BIN_PATH}/${TOOL} "$@" +else + echo "ERROR: tool '${TOOL}' not found in ${BIN_PATH}!" >&2 + exit 2 +fi + |