|
| 1 | +#!/bin/bash |
| 2 | +set -Eeuo pipefail |
| 3 | +IFS=$'\n\t' |
| 4 | + |
| 5 | +README_FILE="README.md" |
| 6 | +SCRIPT_FILE="n8n-manager.sh" |
| 7 | + |
| 8 | +# Function to update a badge in README.md |
| 9 | +# Arguments: <badge_name_placeholder> <badge_url> |
| 10 | +update_badge() { |
| 11 | + local placeholder="$1" |
| 12 | + local url="$2" |
| 13 | + # Ensure the placeholder exists before attempting to replace |
| 14 | + if grep -q "<!-- $placeholder -->" "$README_FILE"; then |
| 15 | + # Using awk for more robust replacement across lines if needed |
| 16 | + awk -v placeholder="$placeholder" -v url="$url" ' |
| 17 | + BEGIN {p_start = "<!-- " placeholder " -->"; p_end = "<!-- " placeholder "_END -->"} |
| 18 | + $0 ~ p_start {print; print url; in_block=1; next} |
| 19 | + $0 ~ p_end {print; in_block=0; next} |
| 20 | + !in_block {print} |
| 21 | + ' "$README_FILE" > tmp_readme.md && mv tmp_readme.md "$README_FILE" |
| 22 | + echo "Updated badge: $placeholder" |
| 23 | + else |
| 24 | + echo "Warning: Placeholder '$placeholder' not found in $README_FILE." |
| 25 | + fi |
| 26 | +} |
| 27 | + |
| 28 | +# Get script version |
| 29 | +SCRIPT_VERSION=$(grep -E '^SCRIPT_VERSION=' "$SCRIPT_FILE" | cut -d'"' -f2) |
| 30 | +if [ -z "$SCRIPT_VERSION" ]; then |
| 31 | + echo "Error: Could not extract SCRIPT_VERSION from $SCRIPT_FILE" >&2 |
| 32 | + exit 1 |
| 33 | +fi |
| 34 | + |
| 35 | +# Get other dynamic info (placeholders for now, can be expanded) |
| 36 | +REPO_NAME="$(basename -s .git "$(git config --get remote.origin.url)")" |
| 37 | +OWNER_NAME="$(git config --get remote.origin.url | sed -n 's|.*github.com/\([^/]*\)/.*|\1|p')" |
| 38 | +LAST_COMMIT_DATE_FORMATTED=$(date -u +"%Y-%m-%d") # Simplified, actual last commit date is better |
| 39 | +LICENSE_TYPE="MIT" # Assuming MIT, can be made dynamic |
| 40 | + |
| 41 | +# Generate badge URLs (examples) |
| 42 | +VERSION_BADGE_URL="[](https://github.com/$OWNER_NAME/$REPO_NAME/releases/tag/v$SCRIPT_VERSION)" |
| 43 | +LICENSE_BADGE_URL="[](LICENSE)" |
| 44 | +LAST_COMMIT_BADGE_URL="[](https://github.com/$OWNER_NAME/$REPO_NAME/commits/main)" |
| 45 | +# Add more badges as needed (e.g., open issues, stars, build status from ci.yml) |
| 46 | +# BUILD_STATUS_BADGE_URL="[](https://github.com/$OWNER_NAME/$REPO_NAME/actions/workflows/ci.yml)" |
| 47 | + |
| 48 | +# Update badges in README |
| 49 | +update_badge "BADGE_VERSION" "$VERSION_BADGE_URL" |
| 50 | +update_badge "BADGE_LICENSE" "$LICENSE_BADGE_URL" |
| 51 | +update_badge "BADGE_LAST_COMMIT" "$LAST_COMMIT_BADGE_URL" |
| 52 | +# update_badge "BADGE_BUILD_STATUS" "$BUILD_STATUS_BADGE_URL" |
| 53 | + |
| 54 | +echo "README badges update process completed." |
| 55 | + |
| 56 | +# The workflow will handle committing this file. |
| 57 | + |
| 58 | +exit 0 |
0 commit comments