-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathenable
executable file
·82 lines (62 loc) · 3.75 KB
/
enable
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/env bash
### DEFAULTS ###
export LOCAL_TAG="latest-o2physics-o2"
export CVMFS_TAG="daily-20250219-0000-1"
# Steering of the environment:
#
# O2OPENACCESS_SW_TAG_LOCAL : set the string name for local installation
# O2OPENACCESS_SW_TAG_CVMFS : set the string name for CVMFS installation
#
# O2OPENACCESS_USE_LOCAL : set to anything to use the local tag (and installation) instead of CVMFS (which is the default)
#####################################################
[[ "${BASH_SOURCE[0]}" -ef "${0}" ]] && { echo -e "This script should be sourced! use:\nsource $(realpath ${0})"; exit 1; }
SCRIPT_PATH=$(realpath -e -P "${BASH_SOURCE[0]}")
SCRIPT_DIR=$(cd -P $(dirname -- "${SCRIPT_PATH}") >/dev/null 2>&1 && pwd)
## HELPERS
SourceIfValid () { [[ -f $1 ]] && source $1; }
# Check if 2nd arg is found in the list(terms delimited by ":") in the 1st arg
ITEM_IN_PATH () {
local LIST_STR ITEM path_arr n
[[ -z "${1}" ]] && return 1;
[[ -z "${2}" ]] && return 1;
LIST_STR="${1}"
ITEM="${2}"
IFS=':' read -ra path_arr <<< "${LIST_STR}"
for (( n=0; n < ${#path_arr[*]}; n++)); do [[ "$(realpath -q ${ITEM})" == "$(realpath -q ${path_arr[n]})" ]] && return 0; done
return 1;
}
# Insert/Add to $PATH if and only if not already present
__PATH_INS () { [[ -z "${1}" ]] && return 1; ITEM_IN_PATH "${PATH}" ${1} && return 0; export PATH="${1}${PATH:+:}${PATH}"; }
__PATH_ADD () { [[ -z "${1}" ]] && return 1; ITEM_IN_PATH "${PATH}" ${1} && return 0; export PATH="${PATH}${PATH:+:}${1}"; }
# Insert/Add to $LD_LIBRARY_PATH if and only if not already present
__LDLIB_INS () { [[ -z "${1}" ]] && return 1; ITEM_IN_PATH "${LD_LIBRARY_PATH}" ${1} && return 0; export LD_LIBRARY_PATH="${1}${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"; }
__LDLIB_ADD () { [[ -z "${1}" ]] && return 1; ITEM_IN_PATH "${LD_LIBRARY_PATH}" ${1} && return 0; export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}${1}"; }
######################################################################
## if O2PHYSICS present (environemnt already enabled then just add path and exit)
[[ -n "${O2PHYSICS_ROOT}" ]] && { __PATH_INS "${SCRIPT_DIR}/bin" ; return 0 ; }
# apply local customizations
SourceIfValid ~/.aliopendata_cfg # apply general customization user-level
SourceIfValid ./.aliopendata_cfg # apply local directory customization
export O2OPENACCESS_USE_LOCAL=${O2OPENACCESS_USE_LOCAL:-} # if set, use the local installation
export O2OPENACCESS_SW_TAG_LOCAL=${O2OPENACCESS_SW_TAG_LOCAL:-${LOCAL_TAG}}
export O2OPENACCESS_SW_TAG_CVMFS=${O2OPENACCESS_SW_TAG_CVMFS:-${CVMFS_TAG}}
if [[ -n "${O2OPENACCESS_USE_LOCAL}" ]]; then
O2PHYS_TAG="${O2OPENACCESS_SW_TAG_LOCAL}"
export WORK_DIR="${ALIBUILD_WORK_DIR}" ALIBUILD_ARCH_PREFIX="$(aliBuild architecture)" DISABLE_GPU=1
else
stat "/cvmfs/alice.cern.ch" &> /dev/null || { echo "CVMFS is not available!! >>> ${O2OPENACCESS_SW_TAG_CVMFS} <<< is not accessible!"; return 1; }
O2PHYS_TAG="${O2OPENACCESS_SW_TAG_CVMFS}"
export WORK_DIR="/cvmfs/alice.cern.ch" ALIBUILD_ARCH_PREFIX="el7-x86_64/Packages" DISABLE_GPU=1
fi
[[ -z "${O2PHYS_TAG}" ]] && { echo "O2PHYS_TAG is not set at this point, this should not happen!"; exit 1; }
NOT_FOUND=""
O2PHYS_DIR="${WORK_DIR}/${ALIBUILD_ARCH_PREFIX}/O2Physics/${O2PHYS_TAG}"
[[ ! -d "${O2PHYS_DIR}" ]] && { ALIBUILD_ARCH_PREFIX="el9-x86_64/Packages"; NOT_FOUND="1"; }
if [[ -n "${NOT_FOUND}" ]]; then
O2PHYS_DIR="${WORK_DIR}/${ALIBUILD_ARCH_PREFIX}/O2Physics/${O2PHYS_TAG}"
[[ ! -d "${O2PHYS_DIR}" ]] && { echo "O2Physics was not found in ${O2PHYS_DIR}"; exit 1; }
fi
O2PHYSICS_INIT="${O2PHYS_DIR}/etc/profile.d/init.sh"
[[ ! -f "${O2PHYSICS_INIT}" ]] && { echo "${O2PHYSICS_INIT} not available"; return 1; }
SourceIfValid "${O2PHYSICS_INIT}" &> /dev/null # if we load from cvmfs ignore any errors
__PATH_INS "${SCRIPT_DIR}/bin"