aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml1
-rwxr-xr-xDocker/entrypoint.sh11
-rwxr-xr-xDocker/hooks/build5
-rwxr-xr-xDocker/hooks/pre_build3
-rw-r--r--p/themes/Ansum/sass.sh1
-rw-r--r--p/themes/Mapco/sass.sh1
-rwxr-xr-xtests/shellchecks.sh29
7 files changed, 42 insertions, 9 deletions
diff --git a/.travis.yml b/.travis.yml
index 078a91109..ee510ee84 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,6 +16,7 @@ script:
- phpenv rehash
- find . -not -path "./lib/JSON.php" -name \*.php -print0 | xargs -0 -n1 -P4 php -l 1>/dev/null 2>php-l-results
- if [ -s php-l-results ]; then cat php-l-results; exit 1; fi
+ - bash tests/shellchecks.sh
- |
if [[ $VALIDATE_STANDARD == yes ]]; then
COMPOSER_BIN=$(composer global config --absolute bin-dir)
diff --git a/Docker/entrypoint.sh b/Docker/entrypoint.sh
index b7a961569..bb0e1bde0 100755
--- a/Docker/entrypoint.sh
+++ b/Docker/entrypoint.sh
@@ -1,15 +1,18 @@
#!/bin/sh
-php -f ./cli/prepare.php > /dev/null
+php -f ./cli/prepare.php >/dev/null
chown -R :www-data .
chmod -R g+r . && chmod -R g+w ./data/
-find /etc/php*/ -name php.ini -exec sed -r -i "\#^;?date.timezone#s#^.*#date.timezone = $TZ#" {} \;
+find /etc/php*/ -name php.ini -exec sed -r -i "\\#^;?date.timezone#s#^.*#date.timezone = $TZ#" {} \;
if [ -n "$CRON_MIN" ]; then
- (echo "export TZ=$TZ" ; echo "export COPY_SYSLOG_TO_STDERR=$COPY_SYSLOG_TO_STDERR") > /var/www/FreshRSS/Docker/env.txt
- crontab -l | sed -r "\#FreshRSS#s#^[^ ]+ #$CRON_MIN #" | crontab -
+ (
+ echo "export TZ=$TZ"
+ echo "export COPY_SYSLOG_TO_STDERR=$COPY_SYSLOG_TO_STDERR"
+ ) >/var/www/FreshRSS/Docker/env.txt
+ crontab -l | sed -r "\\#FreshRSS#s#^[^ ]+ #$CRON_MIN #" | crontab -
fi
exec "$@"
diff --git a/Docker/hooks/build b/Docker/hooks/build
index 73bc90e74..84e759a80 100755
--- a/Docker/hooks/build
+++ b/Docker/hooks/build
@@ -1,11 +1,10 @@
#!/bin/bash
cd ..
-FRESHRSS_VERSION=`grep "'FRESHRSS_VERSION'" constants.php | cut -d "'" -f4`
+FRESHRSS_VERSION=$(grep "'FRESHRSS_VERSION'" constants.php | cut -d "'" -f4)
echo "$FRESHRSS_VERSION"
-if [[ "$DOCKERFILE_PATH" == *-ARM ]]
-then
+if [[ $DOCKERFILE_PATH == *-ARM ]]; then
#TODO: Add --squash --platform arm options when Docker Hub deamon supports them
docker build \
--build-arg FRESHRSS_VERSION="$FRESHRSS_VERSION" \
diff --git a/Docker/hooks/pre_build b/Docker/hooks/pre_build
index 5946b045b..b2cda0e48 100755
--- a/Docker/hooks/pre_build
+++ b/Docker/hooks/pre_build
@@ -1,7 +1,6 @@
#!/bin/bash
-if [[ "$DOCKERFILE_PATH" == *-ARM ]]
-then
+if [[ $DOCKERFILE_PATH == *-ARM ]]; then
# https://github.com/balena-io/qemu
# Download a local copy of QEMU on Docker Hub build machine
curl -LSs 'https://github.com/balena-io/qemu/releases/download/v3.0.0%2Bresin/qemu-3.0.0+resin-arm.tar.gz' | tar -xzv --strip-components=1 --wildcards '*/qemu-*'
diff --git a/p/themes/Ansum/sass.sh b/p/themes/Ansum/sass.sh
index a653acace..6c65128ea 100644
--- a/p/themes/Ansum/sass.sh
+++ b/p/themes/Ansum/sass.sh
@@ -1 +1,2 @@
+#!/bin/sh
sass --watch ansum.scss:ansum.css
diff --git a/p/themes/Mapco/sass.sh b/p/themes/Mapco/sass.sh
index 316d04cf2..c0b3d47df 100644
--- a/p/themes/Mapco/sass.sh
+++ b/p/themes/Mapco/sass.sh
@@ -1 +1,2 @@
+#!/bin/sh
sass --watch mapco.scss:mapco.css
diff --git a/tests/shellchecks.sh b/tests/shellchecks.sh
new file mode 100755
index 000000000..648f2766e
--- /dev/null
+++ b/tests/shellchecks.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+# Based on https://github.com/koreader/koreader/blob/master/.ci/helper_shellchecks.sh
+
+ANSI_RED="\\033[31;1m"
+ANSI_GREEN="\\033[32;1m"
+ANSI_RESET="\\033[0m"
+
+mapfile -t shellscript_locations < <({ git grep -lE '^#!(/usr)?/bin/(env )?(bash|sh)' && git ls-files ./*.sh; } | sort | uniq)
+
+SHELLSCRIPT_ERROR=0
+
+for shellscript in "${shellscript_locations[@]}"; do
+ echo -e "${ANSI_GREEN}Running shellcheck on ${shellscript}"
+ shellcheck "${shellscript}" || SHELLSCRIPT_ERROR=1
+ echo -e "${ANSI_GREEN}Running shfmt on ${shellscript}"
+ if ! shfmt "${shellscript}" >/dev/null 2>&1; then
+ echo -e "${ANSI_RED}Warning: ${shellscript} contains the following problem:"
+ shfmt "${shellscript}" || SHELLSCRIPT_ERROR=1
+ continue
+ fi
+ if [ "$(cat "${shellscript}")" != "$(shfmt "${shellscript}")" ]; then
+ echo -e "${ANSI_RED}Warning: ${shellscript} does not abide by coding style, diff for expected style:"
+ shfmt "${shellscript}" | diff "${shellscript}" - || SHELLSCRIPT_ERROR=1
+ fi
+done
+
+echo -ne "${ANSI_RESET}"
+
+exit "${SHELLSCRIPT_ERROR}"