code-intelligence.com/cifuzz@v0.40.0/third-party/update.sh (about) 1 #!/bin/bash 2 3 set -euo pipefail 4 set -x 5 6 SCRIPT_DIR=$(dirname "$(readlink -f "$0")") 7 8 print_usage() { 9 cat <<EOF 10 usage: $0 REPO REFERENCE 11 12 Update the vendored version of the specified repo to the specified 13 git reference. 14 15 Options: 16 -h, --help 17 Print usage message. 18 EOF 19 } 20 21 # Parse arguments 22 POSITIONAL=() 23 while [ "$#" -gt 0 ]; do 24 case "$1" in 25 -h | --help) 26 print_usage 27 exit 0 28 ;; 29 -*) # unknown option 30 echo >&2 "unknown option: $1" 31 print_usage 32 exit 1 33 ;; 34 *) # positional 35 POSITIONAL+=("$1") # save it in an array for later 36 shift # past argument 37 ;; 38 esac 39 done 40 set -- "${POSITIONAL[@]}" # restore positional parameters 41 42 if [ "$#" -lt 2 ]; then 43 print_usage 44 exit 1 45 fi 46 47 REPO="$1" 48 REF="$2" 49 50 TARGET_DIR=$(basename "${REPO}") 51 rm -rf "${SCRIPT_DIR:?}/${TARGET_DIR}" 52 git clone --depth 1 --branch "${REF}" "${REPO}" ${TARGET_DIR} 53 rm -rf "${TARGET_DIR}/.git" 54 echo "${REF}" >"${TARGET_DIR}/ref" 55 56 for patch in "${TARGET_DIR}"*.patch; do 57 if [ -f "${patch}" ]; then 58 patch --directory "${TARGET_DIR}" -p1 < "${patch}" 59 fi 60 done