diff --git a/scripts/make_package.sh b/scripts/make_package.sh index 0baf84fb..34fc43f1 100755 --- a/scripts/make_package.sh +++ b/scripts/make_package.sh @@ -14,6 +14,15 @@ function error_exit() { exit $2 } +function create_file_validations() { + local SOURCE_FILE=$1 + sha256sum ${SOURCE_FILE} >${SOURCE_FILE}.sha256 || error_exit "failed to create sha256 for file: ${SOURCE_FILE}" 1 + if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then + openssl dgst -sha256 -sign "${PROJECT_PRIVATE_KEY}" -out "${SOURCE_FILE}.sig" "${SOURCE_FILE}" || error_exit "failed to create signature for file: ${SOURCE_FILE}" 1 + openssl dgst -sha256 -verify "${PROJECT_PUBLIC_KEY}" -signature "${SOURCE_FILE}.sig" "${SOURCE_FILE}" || error_exit "failed to validate signature for file: ${SOURCE_FILE}" 1 + fi +} + if [ ! -d "${PROJECT_DIST_DIR}" ]; then error_exit "dist directory not found: ${PROJECT_DIST_DIR}" 2 fi @@ -34,26 +43,18 @@ IFS=$'\n' set -f FILE_LIST=$(find . -type f) for FILE in ${FILE_LIST}; do - sha256sum ${FILE} >${FILE}.sha256 || error_exit "failed to create sha256 for file: ${FILE}" 1 - if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then - openssl dgst -sha256 -sign "${PROJECT_PRIVATE_KEY}" -out "${FILE}.sig" "${FILE}" || error_exit "failed to create signature for file: ${FILE}" 1 - openssl dgst -sha256 -verify "${PROJECT_PUBLIC_KEY}" -signature "${FILE}.sig" "${FILE}" || error_exit "failed to validate signature for file: ${FILE}" 1 - fi + create_file_validations "${FILE}" done unset IFS set +f popd FILE_PART=${PROJECT_NAME}_${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}-${PROJECT_RELEASE_ITER}-${PROJECT_GIT_REV}_${PROJECT_BUILD_ARCH}_${PROJECT_OS} +OUT_FILE=${FILE_PART}.tar.gz pushd "${DIST_DIR}" -OUT_FILE=${FILE_PART}.tar.gz tar cvzf "${OUT_FILE}" -C ${TEMP_DIR} . || error_exit "failed to create archive: ${OUT_FILE}" 1 -sha256sum "${OUT_FILE}" >"${OUT_FILE}.sha256" || error_exit "failed to create sha256 for file: ${OUT_FILE}" 1 -if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then - openssl dgst -sha256 -sign "${PROJECT_PRIVATE_KEY}" -out "${OUT_FILE}.sig" "${OUT_FILE}" || error_exit "failed to create signature for file: ${OUT_FILE}" 1 - openssl dgst -sha256 -verify "${PROJECT_PUBLIC_KEY}" -signature "${OUT_FILE}.sig" "${OUT_FILE}" || error_exit "failed to validate signature for file: ${OUT_FILE}" 1 -fi +create_file_validations "${OUT_FILE}" popd error_exit "created package ${FILE_PART}" 0