mirror of
https://github.com/dedicatedcode/reitti.git
synced 2026-01-08 00:53:53 -05:00
134 lines
4.0 KiB
Bash
Executable File
134 lines
4.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Script to generate contributors.json and translators.json for the acknowledgments page
|
|
# This script should be run before building the application
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
RESOURCES_DIR="$SCRIPT_DIR/../src/main/resources"
|
|
|
|
# GitHub API settings
|
|
GITHUB_REPO="${GITHUB_REPOSITORY:-dedicatedcode/reitti}"
|
|
GITHUB_TOKEN="${GITHUB_TOKEN:-}"
|
|
|
|
|
|
echo "Generating acknowledgments data..."
|
|
|
|
# Function to fetch GitHub contributors
|
|
fetch_contributors() {
|
|
echo "Fetching contributors from GitHub..."
|
|
|
|
local api_url="https://api.github.com/repos/$GITHUB_REPO/contributors"
|
|
local headers=""
|
|
|
|
if [ -n "$GITHUB_TOKEN" ]; then
|
|
headers="-H \"Authorization: token $GITHUB_TOKEN\""
|
|
fi
|
|
|
|
# Fetch contributors and format as JSON
|
|
local contributors_data=$(eval "curl -s $headers \"$api_url\"" | jq '[
|
|
.[] |
|
|
select(.type == "User") |
|
|
select(.login != "dependabot[bot]") |
|
|
select(.login != "github-actions[bot]") |
|
|
select(.login != "weblate") |
|
|
select(.login != "aider-chat-bot") |
|
|
select(.login != "dgraf-gh") |
|
|
{
|
|
name: (.name // .login),
|
|
role: "Contributor",
|
|
avatar: .avatar_url,
|
|
github: .login
|
|
}
|
|
]')
|
|
|
|
# Create contributors.json
|
|
echo "{\"contributors\": $contributors_data}" > "$RESOURCES_DIR/contributors.json"
|
|
echo "✓ Contributors data saved to contributors.json"
|
|
}
|
|
|
|
|
|
# Function to create projects.json with open source dependencies
|
|
create_projects_data() {
|
|
echo "Creating projects acknowledgments..."
|
|
|
|
local projects_json='[
|
|
{
|
|
"name": "Spring Boot",
|
|
"description": "Java-based framework for building production-ready applications",
|
|
"url": "https://spring.io/projects/spring-boot",
|
|
"license": "Apache 2.0",
|
|
"category": "Framework"
|
|
},
|
|
{
|
|
"name": "PostgreSQL",
|
|
"description": "Advanced open source relational database",
|
|
"url": "https://www.postgresql.org/",
|
|
"license": "PostgreSQL License",
|
|
"category": "Database"
|
|
},
|
|
{
|
|
"name": "Leaflet",
|
|
"description": "Open-source JavaScript library for mobile-friendly interactive maps",
|
|
"url": "https://leafletjs.com/",
|
|
"license": "BSD-2-Clause",
|
|
"category": "Frontend"
|
|
},
|
|
{
|
|
"name": "HTMX",
|
|
"description": "High power tools for HTML",
|
|
"url": "https://htmx.org/",
|
|
"license": "BSD-2-Clause",
|
|
"category": "Frontend"
|
|
},
|
|
{
|
|
"name": "Thymeleaf",
|
|
"description": "Modern server-side Java template engine",
|
|
"url": "https://www.thymeleaf.org/",
|
|
"license": "Apache 2.0",
|
|
"category": "Template Engine"
|
|
},
|
|
{
|
|
"name": "Chart.js",
|
|
"description": "Simple yet flexible JavaScript charting library",
|
|
"url": "https://www.chartjs.org/",
|
|
"license": "MIT",
|
|
"category": "Frontend"
|
|
}
|
|
]'
|
|
|
|
echo "{\"projects\": $projects_json}" > "$RESOURCES_DIR/projects.json"
|
|
echo "✓ Projects data saved to projects.json"
|
|
}
|
|
|
|
# Main execution
|
|
main() {
|
|
# Check if jq is available
|
|
if ! command -v jq &> /dev/null; then
|
|
echo "Error: jq is required but not installed."
|
|
exit 1
|
|
fi
|
|
|
|
# Check if curl is available
|
|
if ! command -v curl &> /dev/null; then
|
|
echo "Error: curl is required but not installed."
|
|
exit 1
|
|
fi
|
|
|
|
# Create resources directory if it doesn't exist
|
|
mkdir -p "$RESOURCES_DIR"
|
|
|
|
# Generate all acknowledgment files
|
|
fetch_contributors
|
|
create_projects_data
|
|
|
|
echo "✅ Acknowledgments data generation completed!"
|
|
echo "Generated files:"
|
|
echo " - $RESOURCES_DIR/contributors.json"
|
|
echo " - $RESOURCES_DIR/projects.json"
|
|
}
|
|
|
|
# Run main function
|
|
main "$@"
|