aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorAaron LI <aly@aaronly.me>2018-09-14 14:47:05 +0800
committerAaron LI <aly@aaronly.me>2018-09-14 14:47:05 +0800
commit373caa4776d2111a823b2cf4f2b7f79bc5e1c66c (patch)
treebac9e87f7fd2f439161eb4e348b1e1a2184f802b /scripts
parentae43b0c726e399d6f6426e8a14e51d00cbfcf95e (diff)
downloadchandra-acis-analysis-373caa4776d2111a823b2cf4f2b7f79bc5e1c66c.tar.bz2
Add scripts/heasoft.sh to help avoid library conflicts
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/heasoft.sh68
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
+