From 9a018d683578c0446b9c07af3868fb881b39a39f Mon Sep 17 00:00:00 2001 From: Julian Prein Date: Wed, 11 May 2022 13:17:32 +0200 Subject: [PATCH] zsh:funcs:shellcheck: Fall back to web service Add a shellcheck wrapper that falls back to the web service if shellcheck is not installed. --- .config/zsh/zshrc.d/40-functions.zsh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.config/zsh/zshrc.d/40-functions.zsh b/.config/zsh/zshrc.d/40-functions.zsh index 09bc7ff..e0e47d4 100644 --- a/.config/zsh/zshrc.d/40-functions.zsh +++ b/.config/zsh/zshrc.d/40-functions.zsh @@ -507,3 +507,27 @@ pgrep() { # list. ps aux | grep "${1/(#b)(?)/[$match]}" } + +# Use shellcheck.net if shellcheck is not installed. +shellcheck() { + if (( $+commands[shellcheck] )); then + command shellcheck "$@" + return + fi + + printf >&2 \ + "Using www.shellcheck.net. You might want to install shellcheck.\n\n" + local url json_parser arg + + url='https://www.shellcheck.net/shellcheck.php' + json_parser="${${commands[jq]:-cat}:c}" + + for arg; do + if [[ ! -r $arg ]]; then + printf "%s\n" "$arg: File does not exist or is non-readable" >&2 + continue + fi + curl -sS "$url" -X POST --data-urlencode script@"$arg" \ + | "$json_parser" + done + }