File indexing completed on 2025-07-17 22:23:18
0001
0002
0003
0004 function get_parent_cmds ()
0005 {
0006 local DEPTH=$2
0007 let DEPTH=$DEPTH+1
0008 [ $DEPTH -gt 2 ] && return 0
0009 local XPID=$(ps -p $1 -o ppid= | sed 's| ||g;')
0010 [ "$XPID" = "" -o "$XPID" = "1" ] && return 0
0011 cat "/proc/$XPID/cmdline"
0012 echo ""
0013 cat "/proc/$XPID/cmdline" >> ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.info
0014 echo "" >> ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.info
0015 get_parent_cmds "$XPID" "$DEPTH"
0016 }
0017
0018 export CMSSW_LIMIT_RESULTS="-0"
0019 CMD_NAME=$(basename $0)
0020 QUERY=
0021 FORMAT="plain"
0022 HELP=
0023 for ((i=1; i<=$
0024 next=$((i+1))
0025 case ${!i} in
0026 --query=* | -query=* ) QUERY="${!i#*=}" ;;
0027 --query | -query ) QUERY=${!next} ;;
0028 --format=* | -format=* ) FORMAT="${!i#*=}" ;;
0029 --format | -format ) FORMAT=${!next} ;;
0030 -h | --help | -help ) HELP=YES ;;
0031 esac
0032 done
0033
0034 ORIG_DAS_CLIENT=""
0035 for DAS_CLIENT in $(echo $PATH | tr ':' '\n' | sed "s|\$|/${CMD_NAME}|") ; do
0036 [ -e ${DAS_CLIENT} ] || continue
0037 if ! head -2 ${DAS_CLIENT} | grep -q 'CMSSDT_DAS_CLIENT_SIGN'; then ORIG_DAS_CLIENT=${DAS_CLIENT}; break; fi
0038 done
0039
0040 if [ "X${ORIG_DAS_CLIENT}" = "X" ] ; then
0041 echo "${CMD_NAME}: Command not found." 1>&2
0042 exit 1
0043 fi
0044
0045 if [ "${QUERY}" = "" -o "${HELP}" != "" ] ; then
0046 ${ORIG_DAS_CLIENT} "$@"
0047 exit $?
0048 fi
0049
0050 QUERY=$(echo "${QUERY}" | sed 's|^ *||;s| *$||;s| *| |g;s| =|=|g;s|= |=|g;')
0051 QUERY_SHA_HASH=$(echo -n "${QUERY}" | sha256sum | sed 's| .*$||;s| *||')
0052 QUERY_SHA=$(echo "${QUERY_SHA_HASH}" | sed 's|^\(..\)|\1/\1|')
0053 QUERY_URL="https://raw.githubusercontent.com/cms-sw/cms-sw.github.io/master/das_queries/${QUERY_SHA}"
0054 DAS_QUERY_DIR=das_query/$$
0055 if [ "X${LOCALRT}" != "X" ] ; then DAS_QUERY_DIR="${LOCALRT}/${DAS_QUERY_DIR}" ; fi
0056 rm -rf ${DAS_QUERY_DIR}
0057 mkdir -p ${DAS_QUERY_DIR}
0058 echo "${QUERY}" > ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.query
0059 touch ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.info
0060 if [ "${FORMAT}" = "json" ] ; then
0061 QUERY_RESULTS=$(curl -f -L -s "${QUERY_URL}.json" || true)
0062 if [ "${QUERY_RESULTS}" = "" ] ; then
0063 ${ORIG_DAS_CLIENT} "$@" > ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.out
0064 else
0065 echo "${QUERY_RESULTS}" > ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.out
0066 fi
0067 cat ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.out
0068 exit 0
0069 else
0070 QUERY_RESULTS=$((curl -f -L -s "${QUERY_URL}" || true) | grep /store/ | sed 's| ||g;s|"||g;s|,||g')
0071 if (get_parent_cmds $$ 0 2>&1 || true) | grep -aq '/cmsDriver.py'; then
0072 export CMSSW_LIMIT_RESULTS="20"
0073 fi
0074 if [ "${QUERY_RESULTS}" = "" ] ; then
0075 ${ORIG_DAS_CLIENT} "$@" > ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.out
0076 else
0077 echo "${QUERY_RESULTS}" > ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.out
0078 fi
0079 fi
0080 echo $CMSSW_LIMIT_RESULTS >> ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.info
0081 cat ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.out | ibeos-lfn-sort > ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.selected
0082 cat ${DAS_QUERY_DIR}/${QUERY_SHA_HASH}.selected