From 78bfdf83bdc8b84145e37d337874cb15357b4d57 Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Sat, 25 Nov 2023 16:47:30 +1100 Subject: [PATCH] ci: download lua-language-server binary --- scripts/lls-check | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/scripts/lls-check b/scripts/lls-check index 9fcb0021..3aaaab23 100755 --- a/scripts/lls-check +++ b/scripts/lls-check @@ -2,12 +2,28 @@ # Performs a lua-language-server check on all files. # lls-check/check.json will be produced on any issues, returning 1. +# Outputs check.json to stdout, all messages to stderr, to allow jq etc. -rm -rf lls-check -mkdir lls-check +VER_LLS="3.7.3" -OUT=$(lua-language-server --checklevel=Information --check . --logpath=lls-check --loglevel=error) -echo "${OUT}" +DIR_SRC="${PWD}" +DIR_OUT="${DIR_SRC}/lls-out" +DIR_LLS="/tmp/lls" + +# clear output +rm -rf "${DIR_OUT}" +mkdir "${DIR_OUT}" + +if [ ! -d "${DIR_LLS}" ]; then + # download lua-language-server binaries + mkdir -p "${DIR_LLS}" + curl -L "https://github.com/LuaLS/lua-language-server/releases/download/${VER_LLS}/lua-language-server-${VER_LLS}-linux-x64.tar.gz" | tar zx --directory "${DIR_LLS}" +fi + +# execute from within the lua-language-server directory as it expects specific file locations +cd "${DIR_LLS}" +OUT=$("${DIR_LLS}/bin/lua-language-server" --checklevel=Information --check "${DIR_SRC}" --logpath="${DIR_OUT}" --loglevel=error) +echo "${OUT}" >&2 RC=$? if [ $RC -ne 0 ]; then @@ -15,9 +31,11 @@ if [ $RC -ne 0 ]; then exit $RC fi +# any output is a fail case "${OUT}" in - *Diagnosis\ completed*) - if [ -f "lls-check/check.json" ]; then + *Diagnosis\ complete*) + if [ -f "${DIR_OUT}/check.json" ]; then + cat "${DIR_OUT}/check.json" exit 1 else exit 0