Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-26 08:22:03

0001 #!/bin/bash
0002 #
0003 # (c) 2023-2025 CERN for the benefit of the ACTS project
0004 #
0005 # Mozilla Public License Version 2.0
0006 #
0007 # Script downloading the traccc data file(s) through HTTPS, and unpacking them.
0008 #
0009 
0010 # Stop on errors.
0011 set -e
0012 set -o pipefail
0013 
0014 # Function printing the usage information for the script.
0015 usage() {
0016    echo "Script downloading/unpacking data TGZ/MD5 files"
0017    echo ""
0018    echo "Usage: traccc_data_get_files.sh [options]"
0019    echo ""
0020    echo "Options:"
0021    echo "  -f <filename>        Name of the data file, without its extension"
0022    echo "  -d <webDirectory>    Directory holding the data and MD5 files"
0023    echo "  -o <dataDirectory>   Main data directory"
0024    echo "  -c <cmakeExecutable> CMake executable to use in the script"
0025    echo "  -w <curlExecutable>  CUrl executable to use in the script"
0026    echo ""
0027 }
0028 
0029 # Default script arguments.
0030 TRACCC_DATA_NAME=${TRACCC_DATA_NAME:-"traccc-data-v10"}
0031 TRACCC_WEB_DIRECTORY=${TRACCC_WEB_DIRECTORY:-"https://acts.web.cern.ch/traccc/data"}
0032 TRACCC_DATA_DIRECTORY=${TRACCC_DATA_DIRECTORY:-$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)}
0033 TRACCC_CMAKE_EXECUTABLE=${TRACCC_CMAKE_EXECUTABLE:-cmake}
0034 TRACCC_CURL_EXECUTABLE=${TRACCC_CURL_EXECUTABLE:-curl}
0035 
0036 # Parse the command line argument(s).
0037 while getopts ":f:d:o:c:wh" opt; do
0038    case $opt in
0039       f)
0040          TRACCC_DATA_NAME=$OPTARG
0041          ;;
0042       d)
0043          TRACCC_WEB_DIRECTORY=$OPTARG
0044          ;;
0045       o)
0046          TRACCC_DATA_DIRECTORY=$OPTARG
0047          ;;
0048       c)
0049          TRACCC_CMAKE_EXECUTABLE=$OPTARG
0050          ;;
0051       w)
0052          TRACCC_CURL_EXECUTABLE=$OPTARG
0053          ;;
0054       h)
0055          usage
0056          exit 0
0057          ;;
0058       :)
0059          echo "Argument -$OPTARG requires a parameter!"
0060          usage
0061          exit 1
0062          ;;
0063       ?)
0064          echo "Unknown argument: -$OPTARG"
0065          usage
0066          exit 1
0067          ;;
0068    esac
0069 done
0070 
0071 # Go into the target directory.
0072 cd "${TRACCC_DATA_DIRECTORY}"
0073 
0074 # Download the TGZ and MD5 files.
0075 "${TRACCC_CURL_EXECUTABLE}" --retry 5 --retry-delay 10 \
0076    --output "${TRACCC_DATA_NAME}.tar.gz"               \
0077    "${TRACCC_WEB_DIRECTORY}/${TRACCC_DATA_NAME}.tar.gz"
0078 "${TRACCC_CURL_EXECUTABLE}" --retry 5 --retry-delay 10 \
0079    --output "${TRACCC_DATA_NAME}.md5"                  \
0080    "${TRACCC_WEB_DIRECTORY}/${TRACCC_DATA_NAME}.md5"
0081 
0082 # Verify that the download succeeded.
0083 "${TRACCC_CMAKE_EXECUTABLE}" -E md5sum "${TRACCC_DATA_NAME}.tar.gz" > \
0084    "${TRACCC_DATA_NAME}.md5-test"
0085 "${TRACCC_CMAKE_EXECUTABLE}" -E compare_files "${TRACCC_DATA_NAME}.md5" \
0086    "${TRACCC_DATA_NAME}.md5-test"
0087 
0088 # Extract the data files.
0089 "${TRACCC_CMAKE_EXECUTABLE}" -E tar xf "${TRACCC_DATA_NAME}.tar.gz"
0090 
0091 # Clean up.
0092 "${TRACCC_CMAKE_EXECUTABLE}" -E remove "${TRACCC_DATA_NAME}.tar.gz" \
0093    "${TRACCC_DATA_NAME}.md5" "${TRACCC_DATA_NAME}.md5-test"
0094 
0095 # Leave the user with a message.
0096 "${TRACCC_CMAKE_EXECUTABLE}" -E echo \
0097    "Files from ${TRACCC_DATA_NAME} unpacked under '${TRACCC_DATA_DIRECTORY}'"