flake-modules/dev: format launch-test.sh

This commit is contained in:
Gaetan Lepage 2024-07-22 23:09:18 +02:00 committed by Gaétan Lepage
parent 9317537848
commit 901e8760d0

View file

@ -2,11 +2,11 @@
: "${NIXVIM_NIX_COMMAND:=nix}"
if [[ -z ${NIXVIM_SYSTEM+x} ]]; then
NIXVIM_SYSTEM=$(nix eval --raw --impure --expr "builtins.currentSystem")
NIXVIM_SYSTEM=$(nix eval --raw --impure --expr "builtins.currentSystem")
fi
help() {
cat <<EOF
cat <<EOF
Usage: tests [OPTIONS] [tests...]
If tests are passed on the command line only these will be launched
@ -19,9 +19,9 @@ EOF
}
if ! OPTS=$(getopt -o "hli" -l "help,list,interactive" -- "$@"); then
echo "Invalid options" >&2
help
exit 1
echo "Invalid options" >&2
help
exit 1
fi
eval set -- "$OPTS"
@ -30,54 +30,54 @@ specified_tests=()
interactive=false
mk_test_list() {
nix eval ".#checks.${NIXVIM_SYSTEM}" --apply builtins.attrNames --json |
jq -r 'map(select(startswith("test-")))[]'
nix eval ".#checks.${NIXVIM_SYSTEM}" --apply builtins.attrNames --json |
jq -r 'map(select(startswith("test-")))[]'
}
while true; do
case "$1" in
-h | --help)
help
exit 0
;;
-l | --list)
mk_test_list
exit 0
;;
-i | --interactive)
interactive=true
shift
;;
--)
shift
specified_tests=("$@")
break
;;
esac
case "$1" in
-h | --help)
help
exit 0
;;
-l | --list)
mk_test_list
exit 0
;;
-i | --interactive)
interactive=true
shift
;;
--)
shift
specified_tests=("$@")
break
;;
esac
done
run_tests() {
# Add the prefix "checks.${system}." to each argument
if ! "${NIXVIM_NIX_COMMAND}" build --no-link --file . "${@/#/checks.${NIXVIM_SYSTEM}.}"; then
echo "Test failure" >&2
exit 1
fi
# Add the prefix "checks.${system}." to each argument
if ! "${NIXVIM_NIX_COMMAND}" build --no-link --file . "${@/#/checks.${NIXVIM_SYSTEM}.}"; then
echo "Test failure" >&2
exit 1
fi
}
if [[ $interactive = true && ${#specified_tests[@]} -ne 0 ]]; then
echo "Can't use --interactive with tests on the command line" >&2
exit 1
if [[ $interactive == true && ${#specified_tests[@]} -ne 0 ]]; then
echo "Can't use --interactive with tests on the command line" >&2
exit 1
fi
if [[ $interactive = true ]]; then
test_name=$(mk_test_list | fzf) || exit $?
specified_tests+=("$test_name")
if [[ $interactive == true ]]; then
test_name=$(mk_test_list | fzf) || exit $?
specified_tests+=("$test_name")
fi
if [[ ${#specified_tests[@]} -eq 0 ]]; then
readarray -t complete_test_list < <(mk_test_list)
run_tests "${complete_test_list[@]}"
readarray -t complete_test_list < <(mk_test_list)
run_tests "${complete_test_list[@]}"
else
echo "Running ${#specified_tests[@]} tests: ${specified_tests[*]}" >&2
run_tests "${specified_tests[@]}"
echo "Running ${#specified_tests[@]} tests: ${specified_tests[*]}" >&2
run_tests "${specified_tests[@]}"
fi