Meta: Update makem.sh, etc.

This commit is contained in:
Adam Porter 2020-11-24 12:17:39 -06:00
parent 8fb6efecc1
commit 5fab48e2cd
3 changed files with 62 additions and 13 deletions

View file

@ -1,7 +1,7 @@
# * test.yml --- Test Emacs packages using makem.sh on GitHub Actions
# URL: https://github.com/alphapapa/makem.sh
# Version: 0.2.1
# Version: 0.3
# * Commentary:
@ -31,8 +31,8 @@ on:
pull_request:
push:
# Comment out this section to enable testing of all branches.
# branches:
# - master
branches:
- master
jobs:
build:
@ -63,7 +63,7 @@ jobs:
- name: Lint
# NOTE: Uncomment this line to treat lint failures as passing
# so the job doesn't show failure.
continue-on-error: true
# continue-on-error: true
run: ./makem.sh -vv --sandbox=$SANDBOX_DIR lint
- name: Test

View file

@ -1,7 +1,7 @@
# * makem.sh/Makefile --- Script to aid building and testing Emacs Lisp packages
# URL: https://github.com/alphapapa/makem.sh
# Version: 0.2.1
# Version: 0.3
# * Arguments

View file

@ -3,7 +3,7 @@
# * makem.sh --- Script to aid building and testing Emacs Lisp packages
# URL: https://github.com/alphapapa/makem.sh
# Version: 0.2.1
# Version: 0.3
# * Commentary:
@ -80,6 +80,7 @@ Options:
-d, --debug Print debug info.
-h, --help I need somebody!
-v, --verbose Increase verbosity, up to -vv.
--no-color Disable color output.
--debug-load-path Print load-path from inside Emacs.
@ -88,7 +89,8 @@ Options:
-e, --exclude FILE Exclude FILE from linting and testing.
-f, --file FILE Check FILE in addition to discovered files.
--no-color Disable color output.
-c, --compile-batch Batch-compile files (instead of separately; quicker, but
may hide problems).
-C, --no-compile Don't compile files automatically.
Sandbox options:
@ -289,6 +291,18 @@ function batch-byte-compile {
"$@"
}
function byte-compile-file {
debug "byte-compile: ERROR-ON-WARN:$compile_error_on_warn"
local file="$1"
[[ $compile_error_on_warn ]] && local error_on_warn=(--eval "(setq byte-compile-error-on-warn t)")
run_emacs \
"${error_on_warn[@]}" \
--eval "(byte-compile-file \"$file\")" \
|| error "Compiling file failed: $file"
}
# ** Files
function dirs-project {
@ -684,18 +698,48 @@ function all {
tests
}
function compile {
function compile-batch {
[[ $compile ]] || return 0
unset compile # Only compile once.
verbose 1 "Compiling..."
verbose 2 "Batch-compiling files..."
debug "Byte-compile files: ${files_project_byte_compile[@]}"
batch-byte-compile "${files_project_byte_compile[@]}" \
&& success "Compiling finished without errors." \
|| error "Compilation failed."
}
function compile-each {
[[ $compile ]] || return 0
unset compile # Only compile once.
verbose 1 "Compiling..."
debug "Byte-compile files: ${files_project_byte_compile[@]}"
batch-byte-compile "${files_project_byte_compile[@]}" \
local compile_errors
for file in "${files_project_byte_compile[@]}"
do
verbose 2 "Compiling file: $file..."
byte-compile-file "$file" \
|| compile_errors=t
done
! [[ $compile_errors ]] \
&& success "Compiling finished without errors." \
|| error "Compilation failed."
}
function compile {
if [[ $compile = batch ]]
then
compile-batch "$@"
else
compile-each "$@"
fi
}
function batch {
# Run Emacs in batch mode with ${args_batch_interactive[@]} and
# with project source and test files loaded.
@ -747,7 +791,7 @@ function lint-compile {
verbose 1 "Linting compilation..."
compile_error_on_warn=true
batch-byte-compile "${files_project_byte_compile[@]}" \
compile "${files_project_byte_compile[@]}" \
&& success "Linting compilation finished without errors." \
|| error "Linting compilation failed."
unset compile_error_on_warn
@ -880,6 +924,7 @@ errors=0
verbose=0
compile=true
arg_batch="--batch"
compile=each
# MAYBE: Disable color if not outputting to a terminal. (OTOH, the
# colorized output is helpful in CI logs, and I don't know if,
@ -938,8 +983,8 @@ elisp_org_package_archive="(add-to-list 'package-archives '(\"org\" . \"https://
# * Args
args=$(getopt -n "$0" \
-o dhe:E:i:s::vf:CO \
-l exclude:,emacs:,install-deps,install-linters,debug,debug-load-path,help,install:,verbose,file:,no-color,no-compile,no-org-repo,sandbox:: \
-o dhce:E:i:s::vf:CO \
-l compile-batch,exclude:,emacs:,install-deps,install-linters,debug,debug-load-path,help,install:,verbose,file:,no-color,no-compile,no-org-repo,sandbox:: \
-- "$@") \
|| { usage; exit 1; }
eval set -- "$args"
@ -966,6 +1011,10 @@ do
usage
exit
;;
-c|--compile-batch)
debug "Compiling files in batch mode"
compile=batch
;;
-E|--emacs)
shift
emacs_command=($1)