diff --git a/.circleci/config.yml b/.circleci/config.yml index cc9b83a6..51bc7881 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -75,7 +75,7 @@ jobs: echo "########## clang-tidy-11 ##########" clang-tidy-11 src/* -- -I/usr/include -I/usr/include/ncursesw echo "########## shellcheck ##########" - find plugins/ -type f -not -name "*.md" -exec shellcheck -e SC1090,SC2230 {} + + find plugins/ -type f -not -name "*.md" -exec shellcheck {} + package-and-publish: machine: true diff --git a/Makefile b/Makefile index 721d0b67..3eaa28b7 100644 --- a/Makefile +++ b/Makefile @@ -261,6 +261,9 @@ musl: ./musl-static-ubuntu.sh 1 rm ./musl-static-ubuntu.sh +shellcheck: + find ./plugins/ -type f -not -name "*.md" -exec shellcheck {} + + dist: mkdir -p nnn-$(VERSION) $(CP) -r $(DISTFILES) nnn-$(VERSION) diff --git a/misc/CONTRIBUTING.md b/misc/CONTRIBUTING.md index 4fd61cd4..5b06c5f5 100644 --- a/misc/CONTRIBUTING.md +++ b/misc/CONTRIBUTING.md @@ -7,9 +7,10 @@ Before suggesting changes, please read a bit about [the design principles nnn fo `nnn` follows the Linux kernel coding style closely. The C source code uses TABs and the plugins use 4 spaces for indentation. -Changes should not break the patch framework. Please run `make checkpatches` before raising a PR. +- Code changes should not break the patch framework. Please run `make checkpatches` to ensure. +- Run `make shellcheck` if adding/modifying plugins. -CI runs `shellcheck` on plugins. Please watch out for any failures if you are modifying/adding a plugin. +CI runs patch framework sanity test and `shellcheck`. Please watch out for any failures after raising the PR. ## Resources The [wiki](https://github.com/jarun/nnn/wiki/Developer-guides) has some resources for developers you might be interested in: building, debugging... diff --git a/plugins/boom b/plugins/boom index 77bb1b8c..aab466fa 100755 --- a/plugins/boom +++ b/plugins/boom @@ -9,7 +9,7 @@ # Shell: POSIX compliant # Author: Arun Prakash Jana -GUIPLAYER="${GUIPLAYER}" +GUIPLAYER="${GUIPLAYER:-""}" NUMTRACKS="${NUMTRACKS:-100}" if [ -n "$GUIPLAYER" ]; then diff --git a/plugins/cdpath b/plugins/cdpath index 4ef0da23..663cb26a 100755 --- a/plugins/cdpath +++ b/plugins/cdpath @@ -16,6 +16,7 @@ # Shell: POSIX compliant # Author: Yuri Kloubakov +# shellcheck disable=SC1090,SC1091 . "$(dirname "$0")"/.nnn-plugin-helper # Get a list of (symbolic links to) directories for every element of CDPATH diff --git a/plugins/fzcd b/plugins/fzcd index 28bd67e7..125092cb 100755 --- a/plugins/fzcd +++ b/plugins/fzcd @@ -22,10 +22,11 @@ IFS="$(printf '\n\r')" +# shellcheck disable=SC1090,SC1091 . "$(dirname "$0")"/.nnn-plugin-helper CTX=+ -LIST="$LIST" +LIST="${LIST:-""}" if ! type fzf >/dev/null 2>&1; then printf "fzf missing" diff --git a/plugins/fzopen b/plugins/fzopen index 57035b5c..17b05856 100755 --- a/plugins/fzopen +++ b/plugins/fzopen @@ -20,6 +20,7 @@ NUKE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins/nuke" USE_NUKE=0 +# shellcheck disable=SC1090,SC1091 . "$(dirname "$0")"/.nnn-plugin-helper if type fzf >/dev/null 2>&1; then diff --git a/plugins/gutenread b/plugins/gutenread index ba41facd..036ff351 100755 --- a/plugins/gutenread +++ b/plugins/gutenread @@ -18,11 +18,11 @@ # Shell: POSIX compliant # Author: Arun Prakash Jana -EBOOK_ID="${EBOOK_ID}" +EBOOK_ID="${EBOOK_ID:-""}" DIR="${XDG_CACHE_HOME:-$HOME/.cache}/nnn/gutenbooks/$EBOOK_ID" BROWSE_LINK="https://www.gutenberg.org/ebooks/search/?sort_order=downloads" BROWSER="${BROWSER:-w3m}" -READER="${READER}" +READER="${READER:-""}" if [ -n "$EBOOK_ID" ]; then if [ ! -e "$DIR" ]; then diff --git a/plugins/imgur b/plugins/imgur index 373de055..16d21bcd 100755 --- a/plugins/imgur +++ b/plugins/imgur @@ -112,6 +112,7 @@ check_update="true" settings_path="${HOME}/.config/imgur-screenshot/settings.conf" if [ -f "${settings_path}" ]; then + # shellcheck disable=SC1090 source "${settings_path}" fi @@ -204,6 +205,7 @@ function load_access_token() { token_expire_time=0 # check for saved access_token and its expiration date if [ -f "${credentials_file}" ]; then + # shellcheck disable=SC1090 source "${credentials_file}" fi current_time="$(date +%s)" diff --git a/plugins/mimelist b/plugins/mimelist index 586cc7cd..ccfe05a9 100755 --- a/plugins/mimelist +++ b/plugins/mimelist @@ -5,6 +5,7 @@ # Shell: POSIX compliant # Author: Arun Prakash Jana +# shellcheck disable=SC1090,SC1091 . "$(dirname "$0")"/.nnn-plugin-helper printf "mime (e.g., video/audio/image): "