mirror of
https://github.com/chenasraf/nextcloud-autocurrency.git
synced 2026-05-18 01:29:05 +00:00
build: add failure for make scripts
This commit is contained in:
49
Makefile
49
Makefile
@@ -206,21 +206,26 @@ openapi:
|
||||
sign:
|
||||
@VERSION="$$(cat version.txt)"; \
|
||||
TMPF="$$(mktemp)"; \
|
||||
KEY_FILE=~/.nextcloud/certificates/$(app_name).key; \
|
||||
if [ ! -f "$$KEY_FILE" ]; then \
|
||||
echo "\x1b[31m❌ Error: Private key not found at $$KEY_FILE\x1b[0m"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
echo "\x1b[33mSigning version $${VERSION}\x1b[0m"; \
|
||||
echo "\x1b[33mDownloading archive...\x1b[0m"; \
|
||||
curl -L https://github.com/$(repo_path)/releases/download/v$${VERSION}/$(app_name)-v$${VERSION}.tar.gz -o $${TMPF}; \
|
||||
curl -L https://github.com/$(repo_path)/releases/download/v$${VERSION}/$(app_name)-v$${VERSION}.tar.gz -o "$${TMPF}"; \
|
||||
FILESIZE=$$(stat -f%z "$${TMPF}" 2>/dev/null || stat -c%s "$${TMPF}"); \
|
||||
if [ "$${FILESIZE}" -lt 10240 ]; then \
|
||||
echo "\x1b[31mError: Downloaded file is too small (<10KB, actual: $${FILESIZE} bytes)\x1b[0m"; \
|
||||
rm -rf $${TMPF}; \
|
||||
rm -rf "$${TMPF}"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
echo "\x1b[33mSigning with key $(app_name).key\x1b[0m"; \
|
||||
echo "\x1b[33mSigning with key $$KEY_FILE\x1b[0m"; \
|
||||
echo; \
|
||||
echo "\x1b[32mDownload URL:\x1b[0m https://github.com/$(repo_path)/releases/download/v$${VERSION}/$(app_name)-v$${VERSION}.tar.gz"; \
|
||||
echo "\x1b[32mSignature:\x1b[0m"; \
|
||||
openssl dgst -sha512 -sign ~/.nextcloud/certificates/$(app_name).key $${TMPF} | openssl base64; \
|
||||
rm -rf $${TMPF}
|
||||
openssl dgst -sha512 -sign "$$KEY_FILE" "$${TMPF}" | openssl base64; \
|
||||
rm -rf "$${TMPF}"
|
||||
|
||||
.PHONY: release
|
||||
release:
|
||||
@@ -229,13 +234,19 @@ release:
|
||||
printf "\x1b[33mNEXTCLOUD_API_TOKEN not set. Enter token: \x1b[0m"; \
|
||||
read -r NEXTCLOUD_API_TOKEN; \
|
||||
fi; \
|
||||
if [ -n "$$NEXTCLOUD_API_TOKEN" ]; then \
|
||||
echo "\x1b[32m✅ Using provided NEXTCLOUD_API_TOKEN"; \
|
||||
if [ -z "$$NEXTCLOUD_API_TOKEN" ]; then \
|
||||
echo "\x1b[31m❌ Error: NEXTCLOUD_API_TOKEN is missing\x1b[0m"; \
|
||||
exit 1; \
|
||||
else \
|
||||
echo "\x1b[31m❌ Error: NEXTCLOUD_API_TOKEN is missing"; \
|
||||
echo "\x1b[32m✅ Using provided NEXTCLOUD_API_TOKEN\x1b[0m"; \
|
||||
fi; \
|
||||
TMPF="$$(mktemp)"; \
|
||||
DOWNLOAD_URL="https://github.com/$(repo_path)/releases/download/v$${VERSION}/$(app_name)-v$${VERSION}.tar.gz"; \
|
||||
KEY_FILE=~/.nextcloud/certificates/$(app_name).key; \
|
||||
if [ ! -f "$$KEY_FILE" ]; then \
|
||||
echo "\x1b[31m❌ Error: Private key not found at $$KEY_FILE\x1b[0m"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
echo "\x1b[33mDownloading archive for version $${VERSION}...\x1b[0m"; \
|
||||
curl -L "$${DOWNLOAD_URL}" -o "$${TMPF}"; \
|
||||
FILESIZE=$$(stat -f%z "$${TMPF}" 2>/dev/null || stat -c%s "$${TMPF}"); \
|
||||
@@ -244,19 +255,27 @@ release:
|
||||
rm -f "$${TMPF}"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
echo "\x1b[33mSigning with key $(app_name).key\x1b[0m"; \
|
||||
echo "\x1b[33mSigning with key $$KEY_FILE\x1b[0m"; \
|
||||
echo; \
|
||||
SIGNATURE="$$(openssl dgst -sha512 -sign ~/.nextcloud/certificates/$(app_name).key "$${TMPF}" | openssl base64 | tr -d '\n')"; \
|
||||
SIGNATURE="$$(openssl dgst -sha512 -sign "$$KEY_FILE" "$${TMPF}" | openssl base64 | tr -d '\n')"; \
|
||||
rm -f "$${TMPF}"; \
|
||||
echo "\x1b[32mReleasing to Nextcloud App Store...\x1b[0m"; \
|
||||
curl -X POST \
|
||||
RESPONSE="$$(mktemp)"; \
|
||||
HTTP_CODE=$$(curl -s -w "%{http_code}" -o "$${RESPONSE}" -X POST \
|
||||
-H "Authorization: Token $$NEXTCLOUD_API_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"download\":\"$${DOWNLOAD_URL}\", \"signature\":\"$${SIGNATURE}\"}" \
|
||||
https://apps.nextcloud.com/api/v1/apps/releases; \
|
||||
if [ $$? -ne 0 ]; then \
|
||||
echo "\x1b[31m❌ Error: Failed to release to Nextcloud App Store\x1b[0m"; \
|
||||
exit 1; \
|
||||
https://apps.nextcloud.com/api/v1/apps/releases); \
|
||||
cat "$$RESPONSE"; echo; \
|
||||
if [ "$$HTTP_CODE" = "400" ]; then \
|
||||
echo "\x1b[31m❌ Error 400: Invalid data, app too large, signature/cert issue, or not registered\x1b[0m"; exit 1; \
|
||||
elif [ "$$HTTP_CODE" = "401" ]; then \
|
||||
echo "\x1b[31m❌ Error 401: Not authenticated\x1b[0m"; exit 1; \
|
||||
elif [ "$$HTTP_CODE" = "403" ]; then \
|
||||
echo "\x1b[31m❌ Error 403: Not authorized\x1b[0m"; exit 1; \
|
||||
elif [ "$$HTTP_CODE" -ge 300 ]; then \
|
||||
echo "\x1b[31m❌ Unexpected error (HTTP $$HTTP_CODE)\x1b[0m"; exit 1; \
|
||||
fi; \
|
||||
rm -f "$$RESPONSE"; \
|
||||
echo "\x1b[32m🎉 Release successful!\x1b[0m";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user