updated build system

This commit is contained in:
2024-07-23 07:48:34 -05:00
parent 2c1842f06c
commit 04d560739d
4 changed files with 96 additions and 19 deletions

View File

@ -2,46 +2,46 @@
TEMP_DIR=$(mktemp -d)
DEST_DIR=$1
DIST_DIR=$1
CURRENT_DIR=$(dirname "$0")
CURRENT_DIR=$(realpath ${CURRENT_DIR})
. "${CURRENT_DIR}/env.sh" "$2" "$3" "$4" "$5" "$6"
function exit_and_clean() {
function error_exit() {
echo $1
rm -rf ${TEMP_DIR}
exit $2
}
if [ ! -d "${PROJECT_DIST_DIR}" ]; then
echo "Dist directory not found: ${PROJECT_DIST_DIR}"
exit 1
error_exit "dist directory not found: ${PROJECT_DIST_DIR}" 2
fi
if [ "${DEST_DIR}" == "" ]; then
DEST_DIR="${CURRENT_DIR}/../dist"
if [ "${DIST_DIR}" == "" ]; then
DIST_DIR="${CURRENT_DIR}/../dist"
fi
DEST_DIR=$(realpath "${DEST_DIR}")
DIST_DIR=$(realpath "${DIST_DIR}")
if [ ! -d "${DEST_DIR}" ]; then
echo "Destination directory not found: ${DEST_DIR}"
exit 1
if [ ! -d "${DIST_DIR}" ]; then
error_exit "dest directory not found: ${DIST_DIR}" 1
fi
PACKAGE_ROOT="${PROJECT_DIST_DIR}/.."
PACKAGE_ROOT=$(realpath "${PACKAGE_ROOT}")
rsync -av --progress ${PROJECT_DIST_DIR}/ ${TEMP_DIR}/${PROJECT_NAME}/ || exit_and_clean "Failed to rsync" 1
rsync -av --progress ${PROJECT_DIST_DIR}/ ${TEMP_DIR}/${PROJECT_NAME}/ || error_exit "failed to rsync" 1
pushd "${DEST_DIR}"
OUT_FILE=${PROJECT_NAME}_${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}-${PROJECT_RELEASE_ITER}-${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
FILE_PART=${PROJECT_NAME}_${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}-${PROJECT_RELEASE_ITER}-${PROJECT_GIT_REV}_${PROJECT_BUILD_ARCH}_${PROJECT_OS}
pushd "${DIST_DIR}"
OUT_FILE=${FILE_PART}.tar.gz
tar cvzf "${OUT_FILE}" -C ${TEMP_DIR} . || error_exit "failed to create archive" 1
sha256sum "${OUT_FILE}" >"${OUT_FILE}.sha256" || error_exit "failed to create sha256 file" 1
if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then
openssl dgst -sha256 -sign "${PROJECT_PRIVATE_KEY}" -out "${OUT_FILE}.sig" "${OUT_FILE}" || exit_and_clean "Failed to create signature file" 1
openssl dgst -sha256 -verify "${PROJECT_PUBLIC_KEY}" -signature "${OUT_FILE}.sig" "${OUT_FILE}" || exit_and_clean "Failed to validate signature file" 1
openssl dgst -sha256 -sign "${PROJECT_PRIVATE_KEY}" -out "${OUT_FILE}.sig" "${OUT_FILE}" || error_exit "failed to create signature file" 1
openssl dgst -sha256 -verify "${PROJECT_PUBLIC_KEY}" -signature "${OUT_FILE}.sig" "${OUT_FILE}" || error_exit "failed to validate signature file" 1
fi
popd
exit_and_clean "Created package successfully" 0
error_exit "created package ${FILE_PART}" 0