Files
templates/Makefile
Jainil Prajapati 🪐 8142693922 The meta.json glow-up nobody saw coming (#281)
* removed

n8n (appears 2 times)
Authelia (appears 2 times)
SupaBase (appears 2 times)
Livekit (appears 2 times)
WG-Easy (appears 2 times)
Open Notebook (appears 2 times)
Booklore (appears 2 times)
Scrypted (appears 2 times)
Wallos (appears 2 times)
Statping-NG (appears 2 times)

* Replace application catalog entries with new software entries

* Test 1

* Updated Scripts

* Final Test

* Fix

* Remove redundant dependency installation steps from GitHub Actions workflow

* Test 2

* Update meta sorting logic to ASCII order and add --backup option for deduplication

* Fix meta.json: Remove duplicates and apply correct ASCII sorting

- Remove duplicate entries: scrypted, searxng (243 → 241 entries)
- Fix sorting algorithm to use ASCII order for CI/CD compatibility
- Update both dedupe-and-sort-meta.js and build-scripts/process-meta.js
- Add missing --backup CLI argument to build script
- Ensure consistent sorting across all processing interfaces

* Fix CI/CD pipeline: Count JSON entries instead of lines

- Update validate-meta.yml to count JSON entries using Node.js instead of wc -l
- Add custom JSON formatting functions to both processing scripts
- Ensure consistent output formatting across all processing interfaces
- Fix false positive where line count increased due to expanded JSON formatting

The CI/CD failure was caused by counting file lines (4124) instead of actual
JSON entries (241). Both files now produce identical results with proper
entry counting in the validation workflow.

* Fix meta.json formatting to match processing script output

- Apply consistent JSON formatting to meta.json using processing script
- Ensure file formatting matches expected CI/CD workflow output
- Files now pass diff comparison in validation workflow

This resolves the CI/CD pipeline failure where files had identical content
but different formatting, causing diff validation to fail.

* Test 3

* Removed duplicate and action worked :)

* Remove pull_request_template.md

* Remove duplicate meta entries to prevent processing conflicts

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-08-16 00:20:14 -06:00

45 lines
1.8 KiB
Makefile

# Makefile for meta.json processing
.PHONY: help process-meta validate build clean install
# Default target
help:
@echo "Available targets:"
@echo " process-meta - Remove duplicates and sort meta.json alphabetically"
@echo " validate - Validate meta.json structure and content"
@echo " build - Run full build process (includes process-meta)"
@echo " install - Install Node.js dependencies"
@echo " clean - Remove backup files and temporary files"
@echo " help - Show this help message"
# Install dependencies
install:
@echo "📦 Installing dependencies..."
@if [ -f package.json ]; then npm install; else echo "No package.json found, skipping..."; fi
# Process meta.json - remove duplicates and sort alphabetically
process-meta:
@echo "🔧 Processing meta.json..."
@node dedupe-and-sort-meta.js
# Validate meta.json without modifying it
validate:
@echo "🔍 Validating meta.json..."
@node build-scripts/process-meta.js --verbose --no-backup --output /tmp/meta-validation.json
@echo "✅ Validation completed"
# Full build process
build: process-meta
@echo "🏗️ Build process completed"
# Clean backup and temporary files
clean:
@echo "🧹 Cleaning up..."
@find . -name "meta.json.backup.*" -type f -delete 2>/dev/null || true
@rm -f /tmp/meta-*.json 2>/dev/null || true
@echo "✅ Cleanup completed"
# Quick check if meta.json needs processing
check:
@echo "🔍 Quick check for duplicates and sort order..."
@node -e "const fs=require('fs');const d=JSON.parse(fs.readFileSync('meta.json','utf8'));const ids=d.map(i=>i.id);const unique=new Set(ids);console.log('Entries:',d.length,'Unique:',unique.size,'Duplicates:',d.length-unique.size);const sorted=[...ids].sort((a,b)=>a.toLowerCase().localeCompare(b.toLowerCase()));console.log('Sorted:',JSON.stringify(ids)===JSON.stringify(sorted)?'✅':'❌');"