Skip to content

Commit dcc987a

Browse files
committed
feat: add automated readme badge generation script and update badge section
1 parent 765f011 commit dcc987a

File tree

2 files changed

+63
-77
lines changed

2 files changed

+63
-77
lines changed

.github/scripts/update-readme-badges.sh

Lines changed: 60 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,7 @@ IFS=$'\n\t'
66
README_FILE="readme.md"
77
SCRIPT_FILE="n8n-manager.sh"
88

9-
# Function to update a badge in README.md
10-
# Arguments: <badge_name_placeholder> <badge_url_markdown>
11-
update_badge() {
12-
local placeholder="$1"
13-
local markdown="$2"
14-
if grep -q "<!-- $placeholder -->" "$README_FILE"; then
15-
awk -v placeholder="$placeholder" -v md="$markdown" '
16-
BEGIN {p_start = "<!-- " placeholder " -->"; p_end = "<!-- " placeholder "_END -->"}
17-
$0 ~ p_start {print; print md; in_block=1; next}
18-
$0 ~ p_end {print; in_block=0; next}
19-
!in_block {print}
20-
' "$README_FILE" > tmp_readme.md && mv tmp_readme.md "$README_FILE"
21-
echo "Updated badge: $placeholder"
22-
else
23-
echo "Warning: Placeholder '$placeholder' not found in $README_FILE. Badge not updated."
24-
fi
25-
}
9+
2610

2711
# --- Configuration & Dynamic Data ---
2812
# Attempt to get version from script file
@@ -102,18 +86,65 @@ CODE_SIZE_BADGE="[![Repo Size](https://img.shields.io/github/repo-size/$GITHUB_R
10286
# 11. Project Status (Static)
10387
PROJECT_STATUS_BADGE="[![Project Status: Active](https://img.shields.io/badge/status-active-success.svg?style=$BADGE_STYLE)](./#)"
10488

105-
# --- Update README.md ---
106-
update_badge "BADGE_BUILD_STATUS" "$BUILD_STATUS_BADGE"
107-
if [ -n "$LATEST_RELEASE_BADGE" ]; then update_badge "BADGE_LATEST_RELEASE" "$LATEST_RELEASE_BADGE"; fi
108-
update_badge "BADGE_LICENSE" "$LICENSE_BADGE"
109-
update_badge "BADGE_LAST_COMMIT" "$LAST_COMMIT_BADGE"
110-
update_badge "BADGE_STARS" "$STARS_BADGE"
111-
update_badge "BADGE_FORKS" "$FORKS_BADGE"
112-
update_badge "BADGE_OPEN_ISSUES" "$OPEN_ISSUES_BADGE"
113-
update_badge "BADGE_CONTRIBUTORS" "$CONTRIBUTORS_BADGE"
114-
update_badge "BADGE_SHELLCHECK" "$SHELLCHECK_BADGE"
115-
update_badge "BADGE_CODE_SIZE" "$CODE_SIZE_BADGE"
116-
update_badge "BADGE_PROJECT_STATUS" "$PROJECT_STATUS_BADGE"
89+
# 12. Top Language
90+
TOP_LANGUAGE_BADGE="[![GitHub Top Language](https://img.shields.io/github/languages/top/$GITHUB_REPO_SLUG?style=$BADGE_STYLE)](https://github.com/$GITHUB_REPO_SLUG)"
91+
92+
# 13. Maintenance Status (Static)
93+
MAINTENANCE_STATUS_BADGE="[![Maintenance Status](https://img.shields.io/badge/Maintenance-Actively%20Maintained-green.svg?style=$BADGE_STYLE)](./#)"
94+
95+
# --- Badge Definitions (Add more as needed) ---
96+
ALL_BADGES_MARKDOWN=""
97+
98+
# Line 1
99+
ALL_BADGES_MARKDOWN+="$BUILD_STATUS_BADGE "
100+
if [ -n "$LATEST_RELEASE_BADGE" ]; then ALL_BADGES_MARKDOWN+="$LATEST_RELEASE_BADGE "; fi
101+
ALL_BADGES_MARKDOWN+="$SHELLCHECK_BADGE "
102+
ALL_BADGES_MARKDOWN+="$LICENSE_BADGE\n"
103+
104+
# Line 2
105+
ALL_BADGES_MARKDOWN+="$STARS_BADGE "
106+
ALL_BADGES_MARKDOWN+="$FORKS_BADGE "
107+
ALL_BADGES_MARKDOWN+="$CONTRIBUTORS_BADGE "
108+
ALL_BADGES_MARKDOWN+="$OPEN_ISSUES_BADGE\n"
109+
110+
# Line 3
111+
ALL_BADGES_MARKDOWN+="$LAST_COMMIT_BADGE "
112+
ALL_BADGES_MARKDOWN+="$CODE_SIZE_BADGE "
113+
ALL_BADGES_MARKDOWN+="$PROJECT_STATUS_BADGE\n"
114+
115+
# Line 4
116+
ALL_BADGES_MARKDOWN+="$TOP_LANGUAGE_BADGE "
117+
ALL_BADGES_MARKDOWN+="$MAINTENANCE_STATUS_BADGE "
118+
# Add new badges here, for example:
119+
# DOWNLOADS_BADGE="[![GitHub All Releases](https://img.shields.io/github/downloads/$GITHUB_REPO_SLUG/total?style=$BADGE_STYLE)](https://github.com/$GITHUB_REPO_SLUG/releases)"
120+
# TOP_LANGUAGE_BADGE="[![GitHub Top Language](https://img.shields.io/github/languages/top/$GITHUB_REPO_SLUG?style=$BADGE_STYLE)](https://github.com/$GITHUB_REPO_SLUG)"
121+
# ALL_BADGES_MARKDOWN+="$DOWNLOADS_BADGE "
122+
# ALL_BADGES_MARKDOWN+="$TOP_LANGUAGE_BADGE\n"
123+
124+
# --- Update README.md with the consolidated badge block ---
125+
PLACEHOLDER_TAG="ALL_BADGES"
126+
if grep -q "<!-- ${PLACEHOLDER_TAG}_START -->" "$README_FILE"; then
127+
# Use awk to replace content between placeholder comments
128+
awk -v placeholder_start="<!-- ${PLACEHOLDER_TAG}_START -->" \
129+
-v placeholder_end="<!-- ${PLACEHOLDER_TAG}_END -->" \
130+
-v content="${ALL_BADGES_MARKDOWN}" '
131+
BEGIN {printing=1}
132+
$0 ~ placeholder_start {
133+
print;
134+
print content;
135+
printing=0;
136+
next;
137+
}
138+
$0 ~ placeholder_end {
139+
printing=1;
140+
}
141+
printing {print}
142+
' "$README_FILE" > tmp_readme.md && mv tmp_readme.md "$README_FILE"
143+
echo "Successfully updated all badges in $README_FILE."
144+
else
145+
echo "Error: Placeholder '<!-- ${PLACEHOLDER_TAG}_START -->' or '<!-- ${PLACEHOLDER_TAG}_END -->' not found in $README_FILE." >&2
146+
exit 1
147+
fi
117148

118149
echo "README badges update process completed."
119150
exit 0

readme.md

Lines changed: 3 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,7 @@
11
# n8n-manager: Backup & Restore for n8n Docker via GitHub
2-
<!-- BADGE_VERSION -->
3-
[![Version](https://img.shields.io/badge/version-3.0.15-blue.svg)](https://github.com/Automations-Project/n8n-data-manager/releases/tag/v3.0.15)
4-
<!-- BADGE_VERSION_END -->
5-
6-
<!-- BADGE_BUILD_STATUS -->
7-
[![Build Status](https://img.shields.io/github/actions/workflow/status/Automations-Project/n8n-data-manager/ci.yml?branch=main&style=flat-square)](https://github.com/Automations-Project/n8n-data-manager/actions/workflows/ci.yml)
8-
<!-- BADGE_BUILD_STATUS_END -->
9-
10-
<!-- BADGE_LATEST_RELEASE -->
11-
[![Latest Release](https://img.shields.io/github/v/release/Automations-Project/n8n-data-manager?include_prereleases&style=flat-square&label=release)](https://github.com/Automations-Project/n8n-data-manager/releases/latest)
12-
<!-- BADGE_LATEST_RELEASE_END -->
13-
14-
<!-- BADGE_SHELLCHECK -->
15-
[![ShellCheck](https://img.shields.io/badge/ShellCheck-passing-brightgreen?style=flat-square)](https://github.com/Automations-Project/n8n-data-manager/actions/workflows/ci.yml?query=branch%3Amain)
16-
<!-- BADGE_SHELLCHECK_END -->
17-
18-
<!-- BADGE_LICENSE -->
19-
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE)
20-
<!-- BADGE_LICENSE_END -->
21-
22-
<!-- BADGE_STARS -->
23-
[![GitHub Stars](https://img.shields.io/github/stars/Automations-Project/n8n-data-manager?style=flat-square&logo=github)](https://github.com/Automations-Project/n8n-data-manager/stargazers)
24-
<!-- BADGE_STARS_END -->
25-
26-
<!-- BADGE_FORKS -->
27-
[![GitHub Forks](https://img.shields.io/github/forks/Automations-Project/n8n-data-manager?style=flat-square&logo=github)](https://github.com/Automations-Project/n8n-data-manager/network/members)
28-
<!-- BADGE_FORKS_END -->
29-
30-
<!-- BADGE_CONTRIBUTORS -->
31-
[![Contributors](https://img.shields.io/github/contributors/Automations-Project/n8n-data-manager?style=flat-square)](https://github.com/Automations-Project/n8n-data-manager/graphs/contributors)
32-
<!-- BADGE_CONTRIBUTORS_END -->
33-
34-
<!-- BADGE_OPEN_ISSUES -->
35-
[![Open Issues](https://img.shields.io/github/issues-raw/Automations-Project/n8n-data-manager?style=flat-square&logo=github)](https://github.com/Automations-Project/n8n-data-manager/issues)
36-
<!-- BADGE_OPEN_ISSUES_END -->
37-
38-
<!-- BADGE_LAST_COMMIT -->
39-
[![Last Commit](https://img.shields.io/github/last-commit/Automations-Project/n8n-data-manager/main?style=flat-square)](https://github.com/Automations-Project/n8n-data-manager/commits/main)
40-
<!-- BADGE_LAST_COMMIT_END -->
41-
42-
<!-- BADGE_CODE_SIZE -->
43-
[![Repo Size](https://img.shields.io/github/repo-size/Automations-Project/n8n-data-manager?style=flat-square)](https://github.com/Automations-Project/n8n-data-manager)
44-
<!-- BADGE_CODE_SIZE_END -->
45-
46-
<!-- BADGE_PROJECT_STATUS -->
47-
[![Project Status: Active](https://img.shields.io/badge/status-active-success.svg?style=flat-square)](./#)
48-
<!-- BADGE_PROJECT_STATUS_END -->
49-
<!-- BADGE_BUILD_STATUS_END -->
2+
<!-- ALL_BADGES_START -->
3+
<!-- Badges will be automatically updated here by .github/scripts/update-readme-badges.sh -->
4+
<!-- ALL_BADGES_END -->
505

516
![Banner](.github/images/Banner.png)
527

0 commit comments

Comments
 (0)