Files
conflict-buttons.el/checks.sh
Andros Fenollosa 22af851d6a Prepare package for MELPA submission
- Add GPL-3.0 LICENSE file
- Add checks.sh script for quality validation (checkdoc, package-lint, melpazoid)
- Fix checkdoc issue: quote symbol in docstring
- Remove redundant smerge-mode-hook (already handled by globalized mode)
- Move configuration examples from example-config.el to README
- Add advanced customization sections to README (lazy loading, terminal, Magit)
- Update Contributing section with link to contribution guidelines
- Update .gitignore to exclude melpazoid/ directory

All MELPA quality checks now pass successfully.
2026-02-23 08:40:20 +01:00

96 lines
3.1 KiB
Bash
Executable File

#!/bin/bash
# checks.sh - Run all quality checks on conflict-buttons.el
# Usage: ./checks.sh
set -e # Exit on error
echo "=== CONFLICT-BUTTONS.EL QUALITY CHECKS ==="
echo ""
# Track overall status
OVERALL_STATUS=0
# 1. Run checkdoc
echo "[1/5] Running checkdoc..."
echo " Checking conflict-buttons.el..."
if emacs --batch --eval "(progn (require 'checkdoc) (checkdoc-file \"conflict-buttons.el\"))" 2>&1 | grep -i "error\|warning"; then
echo " ⚠ Checkdoc found issues"
OVERALL_STATUS=1
else
echo " ✓ Checkdoc completed successfully"
fi
echo ""
# 2. Run package-lint
echo "[2/5] Running package-lint..."
echo " Linting conflict-buttons.el..."
if emacs --batch \
--eval "(require 'package)" \
--eval "(add-to-list 'package-archives '(\"melpa\" . \"https://melpa.org/packages/\") t)" \
--eval "(package-initialize)" \
--eval "(unless (package-installed-p 'package-lint) (package-refresh-contents) (package-install 'package-lint))" \
--eval "(require 'package-lint)" \
-f package-lint-batch-and-exit conflict-buttons.el 2>&1 | grep -i "error\|warning"; then
echo " ⚠ Package-lint found issues"
OVERALL_STATUS=1
else
echo " ✓ Package-lint completed successfully"
fi
echo ""
# 3. Run melpazoid
echo "[3/5] Running melpazoid..."
if command -v docker >/dev/null 2>&1 && command -v python3 >/dev/null 2>&1; then
if [ ! -d "melpazoid" ]; then
echo " Cloning melpazoid..."
git clone https://github.com/riscy/melpazoid.git 2>&1 | grep -v "Cloning" || true
fi
echo " Running melpazoid checks with MELPA recipe..."
RECIPE='(conflict-buttons :fetcher git :url "https://git.andros.dev/andros/conflict-buttons.el")'
# Use LOCAL_REPO to test local files instead of cloning
if RECIPE="$RECIPE" LOCAL_REPO="$(pwd)" make -C melpazoid 2>&1; then
echo " ✓ Melpazoid completed"
else
echo " ⚠ Melpazoid had warnings or errors"
OVERALL_STATUS=1
fi
else
if ! command -v docker >/dev/null 2>&1; then
echo " ⚠ docker not found, skipping melpazoid"
elif ! command -v python3 >/dev/null 2>&1; then
echo " ⚠ python3 not found, skipping melpazoid"
fi
fi
echo ""
# 4. Format the file
echo "[4/5] Formatting conflict-buttons.el..."
if emacs --batch conflict-buttons.el --eval "(progn (emacs-lisp-mode) (indent-region (point-min) (point-max)) (save-buffer))" 2>&1 | grep -q "error"; then
echo " ✗ Failed to format conflict-buttons.el"
OVERALL_STATUS=1
else
echo " ✓ Formatted conflict-buttons.el"
fi
echo ""
# 5. Compile the file
echo "[5/5] Compiling conflict-buttons.el..."
if emacs --batch --eval "(setq byte-compile-error-on-warn t)" -f batch-byte-compile conflict-buttons.el 2>&1 | grep -i "error\|warning" | grep -v "Loading"; then
echo " ⚠ Compilation warnings/errors found"
OVERALL_STATUS=1
else
echo " ✓ Compiled successfully"
fi
echo ""
echo "=== ALL CHECKS COMPLETED ==="
if [ $OVERALL_STATUS -eq 0 ]; then
echo "✓ All checks passed!"
else
echo "✗ Some checks failed or had warnings"
fi
exit $OVERALL_STATUS