Changeset View
Changeset View
Standalone View
Standalone View
contrib/macdeploy/detached-sig-create.sh
#!/bin/sh | #!/bin/sh | ||||
# Copyright (c) 2014-2015 The Bitcoin Core developers | # Copyright (c) 2014-2015 The Bitcoin Core developers | ||||
# Distributed under the MIT software license, see the accompanying | # Distributed under the MIT software license, see the accompanying | ||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | # file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
set -e | set -e | ||||
ROOTDIR=dist | ROOTDIR=dist | ||||
BUNDLE="${ROOTDIR}/BitcoinABC-Qt.app" | BUNDLE="${ROOTDIR}/BitcoinABC-Qt.app" | ||||
CODESIGN=codesign | CODESIGN=codesign | ||||
TEMPDIR=sign.temp | TEMPDIR=sign.temp | ||||
TEMPLIST=${TEMPDIR}/signatures.txt | TEMPLIST=${TEMPDIR}/signatures.txt | ||||
OUT=signature.tar.gz | OUT=signature.tar.gz | ||||
OUTROOT=osx | OUTROOT=osx | ||||
if [ ! -n "$1" ]; then | if [ -z "$1" ]; then | ||||
echo "usage: $0 <codesign args>" | echo "usage: $0 <codesign args>" | ||||
echo "example: $0 -s MyIdentity" | echo "example: $0 -s MyIdentity" | ||||
exit 1 | exit 1 | ||||
fi | fi | ||||
rm -rf ${TEMPDIR} ${TEMPLIST} | rm -rf ${TEMPDIR} ${TEMPLIST} | ||||
mkdir -p ${TEMPDIR} | mkdir -p ${TEMPDIR} | ||||
${CODESIGN} -f --file-list ${TEMPLIST} "$@" "${BUNDLE}" | ${CODESIGN} -f --file-list ${TEMPLIST} "$@" "${BUNDLE}" | ||||
grep -v CodeResources < "${TEMPLIST}" | while read i; do | grep -v CodeResources < "${TEMPLIST}" | while read i; do | ||||
TARGETFILE="${BUNDLE}/`echo "${i}" | sed "s|.*${BUNDLE}/||"`" | TARGETFILE="${BUNDLE}/$(echo "${i}" | sed "s|.*${BUNDLE}/||")" | ||||
SIZE=`pagestuff "$i" -p | tail -2 | grep size | sed 's/[^0-9]*//g'` | SIZE=$(pagestuff "$i" -p | tail -2 | grep size | sed 's/[^0-9]*//g') | ||||
OFFSET=`pagestuff "$i" -p | tail -2 | grep offset | sed 's/[^0-9]*//g'` | OFFSET=$(pagestuff "$i" -p | tail -2 | grep offset | sed 's/[^0-9]*//g') | ||||
SIGNFILE="${TEMPDIR}/${OUTROOT}/${TARGETFILE}.sign" | SIGNFILE="${TEMPDIR}/${OUTROOT}/${TARGETFILE}.sign" | ||||
DIRNAME="`dirname "${SIGNFILE}"`" | DIRNAME="$(dirname "${SIGNFILE}")" | ||||
mkdir -p "${DIRNAME}" | mkdir -p "${DIRNAME}" | ||||
echo "Adding detached signature for: ${TARGETFILE}. Size: ${SIZE}. Offset: ${OFFSET}" | echo "Adding detached signature for: ${TARGETFILE}. Size: ${SIZE}. Offset: ${OFFSET}" | ||||
dd if="$i" of="${SIGNFILE}" bs=1 skip=${OFFSET} count=${SIZE} 2>/dev/null | dd if="$i" of="${SIGNFILE}" bs=1 skip=${OFFSET} count=${SIZE} 2>/dev/null | ||||
done | done | ||||
grep CodeResources < "${TEMPLIST}" | while read i; do | grep CodeResources < "${TEMPLIST}" | while read i; do | ||||
TARGETFILE="${BUNDLE}/`echo "${i}" | sed "s|.*${BUNDLE}/||"`" | TARGETFILE="${BUNDLE}/$(echo "${i}" | sed "s|.*${BUNDLE}/||")" | ||||
RESOURCE="${TEMPDIR}/${OUTROOT}/${TARGETFILE}" | RESOURCE="${TEMPDIR}/${OUTROOT}/${TARGETFILE}" | ||||
DIRNAME="`dirname "${RESOURCE}"`" | DIRNAME="$(dirname "${RESOURCE}")" | ||||
mkdir -p "${DIRNAME}" | mkdir -p "${DIRNAME}" | ||||
echo "Adding resource for: \"${TARGETFILE}\"" | echo "Adding resource for: \"${TARGETFILE}\"" | ||||
cp "${i}" "${RESOURCE}" | cp "${i}" "${RESOURCE}" | ||||
done | done | ||||
rm ${TEMPLIST} | rm ${TEMPLIST} | ||||
tar -C "${TEMPDIR}" -czf "${OUT}" . | tar -C "${TEMPDIR}" -czf "${OUT}" . | ||||
rm -rf "${TEMPDIR}" | rm -rf "${TEMPDIR}" | ||||
echo "Created ${OUT}" | echo "Created ${OUT}" |