diff --git a/docker/Dockerfile b/docker/Dockerfile index c2c5980..70852ae 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -6,5 +6,6 @@ RUN wget https://github.com/crate-ci/typos/releases/download/v${VERSION}/typos-v tar -xzvf typos-v${VERSION}-x86_64-unknown-linux-musl.tar.gz && \ mv typos /usr/local/bin COPY entrypoint.sh /entrypoint.sh +COPY format_gh.sh /format_gh.sh WORKDIR /github/workspace ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 5dfe375..44ddb84 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -2,6 +2,8 @@ set -eu +SOURCE_DIR="$(dirname -- ${BASH_SOURCE[0]:-$0})"; + log() { echo -e "$1" >&2 } @@ -34,22 +36,18 @@ fi log "typos: $(typos --version)" log "jq: $(jq --version)" -COMMAND="${CMD_NAME} ${TARGET}" +ARGS="${TARGET}" # Ignore implicit configuration files if [ "${INPUT_ISOLATED:-false}" == "true" ]; then - COMMAND+=" --isolated" + ARGS+=" --isolated" fi # Use a custom configuration file if [[ -n "${INPUT_CONFIG:-}" ]]; then - COMMAND+=" --config ${INPUT_CONFIG}" + ARGS+=" --config ${INPUT_CONFIG}" fi -log "$ ${COMMAND}" -${COMMAND} --format json | - jq --sort-keys --raw-output '"::warning file=\(.path),line=\(.line_num),col=\(.byte_offset)::\"\(.typo)\" should be \"" + (.corrections // [] | join("\" or \"") + "\".")' | - while IFS= read -r line; do - echo "$line" - done || true -${COMMAND} +log "$ ${CMD_NAME} ${ARGS}" +${CMD_NAME} ${ARGS} --format json | ${SOURCE_DIR}/format_gh.sh || true +${CMD_NAME} ${ARGS} diff --git a/docker/format_gh.sh b/docker/format_gh.sh new file mode 100755 index 0000000..b136160 --- /dev/null +++ b/docker/format_gh.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -eu + +grep '"type":"typo"' | + jq --sort-keys --raw-output '"::warning file=\(.path),line=\(.line_num),col=\(.byte_offset)::\"\(.typo)\" should be \"" + (.corrections // [] | join("\" or \"") + "\".")' | + while IFS= read -r line; do + echo "$line" + done