66 lines
1.8 KiB
Bash
66 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
TEMP_DIR=$(mktemp -d)
|
|
|
|
DEST_DIR=$1
|
|
CURRENT_DIR=$(dirname "$0")
|
|
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
|
|
|
. "${CURRENT_DIR}/env.sh" "$2" "$3" "$4" "$5" "$6"
|
|
|
|
if [ -f "${CURRENT_DIR}/../build/version.sh" ]; then
|
|
source ${CURRENT_DIR}/../build/version.sh
|
|
fi
|
|
|
|
if [ -f "${CURRENT_DIR}/../build/git_rev.sh" ]; then
|
|
source ${CURRENT_DIR}/../build/git_rev.sh
|
|
fi
|
|
|
|
function exit_and_clean() {
|
|
echo $1
|
|
rm -rf ${TEMP_DIR}
|
|
exit $2
|
|
}
|
|
|
|
if [ "${PROJECT_VERSION}" == "" ]; then
|
|
echo "Project version not set"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${PROJECT_GIT_REV}" == "" ]; then
|
|
echo "Project git revision not set"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "${PROJECT_DIST_DIR}" ]; then
|
|
echo "Dist directory not found: ${PROJECT_DIST_DIR}"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${DEST_DIR}" == "" ]; then
|
|
DEST_DIR="${CURRENT_DIR}/../dist"
|
|
fi
|
|
DEST_DIR=$(realpath "${DEST_DIR}")
|
|
|
|
if [ ! -d "${DEST_DIR}" ]; then
|
|
echo "Destination directory not found: ${DEST_DIR}"
|
|
exit 1
|
|
fi
|
|
|
|
PACKAGE_ROOT="${PROJECT_DIST_DIR}/.."
|
|
PACKAGE_ROOT=$(realpath "${PACKAGE_ROOT}")
|
|
|
|
rsync -av --progress ${PACKAGE_ROOT}/ ${TEMP_DIR}/ || exit_and_clean "Failed to rsync" 1
|
|
|
|
pushd "${DEST_DIR}"
|
|
OUT_FILE=${PROJECT_APP_NAME}_${PROJECT_VERSION}_${PROJECT_GIT_REV}_${PROJECT_BUILD_ARCH}_${PROJECT_OS}.tar.gz
|
|
tar cvzf "${OUT_FILE}" -C ${TEMP_DIR} . || exit_and_clean "Failed to create archive" 1
|
|
sha256sum "${OUT_FILE}" >"${OUT_FILE}.sha256" || exit_and_clean "Failed to create sha256 file" 1
|
|
if [ "${DEVELOPER_PRIVATE_KEY}" != "" ]; then
|
|
openssl dgst -sha256 -sign "${DEVELOPER_PRIVATE_KEY}" -out "${OUT_FILE}.sig" "${OUT_FILE}" || exit_and_clean "Failed to create signature file" 1
|
|
openssl dgst -sha256 -verify "${DEVELOPER_PUBLIC_KEY}" -signature "${OUT_FILE}.sig" "${OUT_FILE}" || exit_and_clean "Failed to validate signature file" 1
|
|
fi
|
|
popd
|
|
|
|
exit_and_clean "Created package successfully" 0
|