commit b0580905f2d209f67e557eafd78ada1b53500bf2
parent b75a22f72dd5c91b28dbcefea74171ddc17dbf0b
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date: Sat, 16 Jul 2022 23:17:32 +0530
Add Makefile target shellcheck
Diffstat:
10 files changed, 17 insertions(+), 7 deletions(-)
diff --git 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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): "