1#!/bin/sh 2NAME="${0##*/}" 3STAGING_DIR="${1}" 4TARGET_DIR="${2}" 5shift 2 6 7SYMBOLS_DIR="${STAGING_DIR}/usr/share/google-breakpad-symbols" 8rm -rf "${SYMBOLS_DIR}" 9mkdir -p "${SYMBOLS_DIR}" 10 11error() { 12 fmt="${1}"; shift 13 printf "%s: ${fmt}" "${NAME}" "${@}" >&2 14 exit 1 15} 16 17for FILE in ${@}; do 18 f="${TARGET_DIR}${FILE}" 19 if [ ! -e "${f}" ]; then 20 error "%s: No such file or directory\n" "${FILE}" 21 fi 22 if [ -d "${f}" ]; then 23 error "%s: Is a directory\n" "${FILE}" 24 fi 25 if dump_syms "${f}" > "${SYMBOLS_DIR}/tmp.sym" 2>/dev/null; then 26 hash=$(head -n1 "${SYMBOLS_DIR}/tmp.sym" | cut -d ' ' -f 4); 27 filename=$(basename "${FILE}"); 28 mkdir -p "${SYMBOLS_DIR}/${filename}/${hash}" 29 mv "${SYMBOLS_DIR}/tmp.sym" "${SYMBOLS_DIR}/${filename}/${hash}/${filename}.sym"; 30 else 31 error "Error dumping symbols for: '%s'\n" "${FILE}" 32 fi 33done 34rm -rf "${SYMBOLS_DIR}/tmp" 35