From 7548d9a8fe935320a564da5e3ae77b4147edc3a5 Mon Sep 17 00:00:00 2001 From: diginc Date: Tue, 1 Nov 2016 23:56:46 -0500 Subject: [PATCH] point shellcheck at update.sh instead --- test/shellcheck_failing_output.txt | 128 ++++++++--------------------- test/test_shellcheck.py | 2 +- 2 files changed, 33 insertions(+), 97 deletions(-) diff --git a/test/shellcheck_failing_output.txt b/test/shellcheck_failing_output.txt index 65b79560..c741a8e9 100644 --- a/test/shellcheck_failing_output.txt +++ b/test/shellcheck_failing_output.txt @@ -18,123 +18,59 @@ _________________________ test_scripts_pass_shellcheck _________________________ def test_scripts_pass_shellcheck(): ''' Make sure shellcheck does not find anything wrong with our shell scripts ''' - shellcheck = "find . -name 'basic-install.sh' | while read file; do shellcheck \"$file\"; done;" + shellcheck = "find . -name 'update.sh' | while read file; do shellcheck \"$file\"; done;" results = run_local(shellcheck) print results.stdout > assert '' == results.stdout -E assert '' == '\nIn ./automated install/bas...C may run when A is true.\n\n' +E assert '' == '\nIn ./advanced/Scripts/upda...vent glob interpretation.\n\n' E + -E + In ./automated install/basic-install.sh line 79: -E + INSTALLER_DEPS=( apt-utils whiptail git dhcpcd5) -E + ^-- SC2034: INSTALLER_DEPS appears unused. Verify it or export it. +E + In ./advanced/Scripts/update.sh line 24: +E + while [ "$(ps a | awk '{print $1}' | grep "${pid}")" ]; do +E + ^-- SC2143: Instead of [ -n $(foo | grep bar) ], use foo | grep -q bar . E + E + -E + In ./automated install/basic-install.sh line 80: -E + PIHOLE_DEPS=( dnsutils bc dnsmasq lighttpd ${phpVer}-common ${phpVer}-cgi curl unzip wget sudo netcat cron iproute2 ) -E + ^-- SC2034: PIHOLE_DEPS appears unused. Verify it or export it. -E Detailed information truncated (91 more lines), use "-vv" to show +E + In ./advanced/Scripts/update.sh line 57: +E + git clone -q --depth 1 "${2}" "${1}" > /dev/null & spinner $! +E + ^-- SC2086: Double quote to prevent globbing and word splitting. +E Detailed information truncated (27 more lines), use "-vv" to show test/test_shellcheck.py:13: AssertionError ----------------------------- Captured stdout call ----------------------------- -In ./automated install/basic-install.sh line 79: - INSTALLER_DEPS=( apt-utils whiptail git dhcpcd5) - ^-- SC2034: INSTALLER_DEPS appears unused. Verify it or export it. +In ./advanced/Scripts/update.sh line 24: + while [ "$(ps a | awk '{print $1}' | grep "${pid}")" ]; do + ^-- SC2143: Instead of [ -n $(foo | grep bar) ], use foo | grep -q bar . -In ./automated install/basic-install.sh line 80: - PIHOLE_DEPS=( dnsutils bc dnsmasq lighttpd ${phpVer}-common ${phpVer}-cgi curl unzip wget sudo netcat cron iproute2 ) - ^-- SC2034: PIHOLE_DEPS appears unused. Verify it or export it. +In ./advanced/Scripts/update.sh line 57: + git clone -q --depth 1 "${2}" "${1}" > /dev/null & spinner $! + ^-- SC2086: Double quote to prevent globbing and word splitting. -In ./automated install/basic-install.sh line 86: - dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed" || ${PKG_INSTALL} "$1" - ^-- SC2016: Expressions don't expand in single quotes, use double quotes for that. +In ./advanced/Scripts/update.sh line 65: + git stash -q > /dev/null & spinner $! + ^-- SC2086: Double quote to prevent globbing and word splitting. -In ./automated install/basic-install.sh line 100: - INSTALLER_DEPS=( iproute net-tools procps-ng newt git ) - ^-- SC2034: INSTALLER_DEPS appears unused. Verify it or export it. +In ./advanced/Scripts/update.sh line 66: + git pull -q > /dev/null & spinner $! + ^-- SC2086: Double quote to prevent globbing and word splitting. -In ./automated install/basic-install.sh line 101: - PIHOLE_DEPS=( epel-release bind-utils bc dnsmasq lighttpd lighttpd-fastcgi php-common php-cli php curl unzip wget findutils cronie sudo nmap-ncat ) - ^-- SC2034: PIHOLE_DEPS appears unused. Verify it or export it. +In ./advanced/Scripts/update.sh line 107: +if [[ ${piholeVersion} == ${piholeVersionLatest} && ${webVersion} == ${webVersionLatest} ]]; then + ^-- SC2053: Quote the rhs of = in [[ ]] to prevent glob interpretation. + ^-- SC2053: Quote the rhs of = in [[ ]] to prevent glob interpretation. -In ./automated install/basic-install.sh line 120: - while [ "$(ps a | awk '{print $1}' | grep "$pid")" ]; do - ^-- SC2143: Instead of [ -n $(foo | grep bar) ], use foo | grep -q bar . +In ./advanced/Scripts/update.sh line 112: +elif [[ ${piholeVersion} == ${piholeVersionLatest} && ${webVersion} != ${webVersionLatest} ]]; then + ^-- SC2053: Quote the rhs of = in [[ ]] to prevent glob interpretation. -In ./automated install/basic-install.sh line 214: - chooseInterfaceOptions=$("${chooseInterfaceCmd[@]}" "${interfacesArray[@]}" 2>&1 >/dev/tty) - ^-- SC2069: The order of the 2>&1 and the redirect matters. The 2>&1 has to be last. +In ./advanced/Scripts/update.sh line 120: +elif [[ ${piholeVersion} != ${piholeVersionLatest} && ${webVersion} == ${webVersionLatest} ]]; then + ^-- SC2053: Quote the rhs of = in [[ ]] to prevent glob interpretation. -In ./automated install/basic-install.sh line 241: - choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) - ^-- SC2069: The order of the 2>&1 and the redirect matters. The 2>&1 has to be last. - - -In ./automated install/basic-install.sh line 354: - cp "${IFCFG_FILE}" "${IFCFG_FILE}".backup-"$(date +%Y-%m-%d-%H%M%S)" - ^-- SC2140: The double quotes around this do nothing. Remove or escape them. - - -In ./automated install/basic-install.sh line 408: - DNSchoices=$("${DNSChooseCmd[@]}" "${DNSChooseOptions[@]}" 2>&1 >/dev/tty) - ^-- SC2069: The order of the 2>&1 and the redirect matters. The 2>&1 has to be last. - - -In ./automated install/basic-install.sh line 585: - systemctl stop "${1}" &> /dev/null & spinner $! || true - ^-- SC2086: Double quote to prevent globbing and word splitting. - - -In ./automated install/basic-install.sh line 587: - service "${1}" stop &> /dev/null & spinner $! || true - ^-- SC2086: Double quote to prevent globbing and word splitting. - - -In ./automated install/basic-install.sh line 598: - systemctl restart "${1}" &> /dev/null & spinner $! - ^-- SC2086: Double quote to prevent globbing and word splitting. - - -In ./automated install/basic-install.sh line 600: - service "${1}" restart &> /dev/null & spinner $! - ^-- SC2086: Double quote to prevent globbing and word splitting. - - -In ./automated install/basic-install.sh line 610: - systemctl enable "${1}" &> /dev/null & spinner $! - ^-- SC2086: Double quote to prevent globbing and word splitting. - - -In ./automated install/basic-install.sh line 612: - update-rc.d "${1}" defaults &> /dev/null & spinner $! - ^-- SC2086: Double quote to prevent globbing and word splitting. - - -In ./automated install/basic-install.sh line 631: - ${UPDATE_PKG_CACHE} &> /dev/null & spinner $! - ^-- SC2086: Double quote to prevent globbing and word splitting. - - -In ./automated install/basic-install.sh line 688: - git clone -q --depth 1 "${2}" "${1}" > /dev/null & spinner $! - ^-- SC2086: Double quote to prevent globbing and word splitting. - - -In ./automated install/basic-install.sh line 696: - git pull -q > /dev/null & spinner $! - ^-- SC2086: Double quote to prevent globbing and word splitting. - - -In ./automated install/basic-install.sh line 761: - id -u pihole &> /dev/null && echo "::: User 'pihole' already exists" || (echo "::: User 'pihole' doesn't exist. Creating..." && useradd -r -s /usr/sbin/nologin pihole) - ^-- SC2015: Note that A && B || C is not if-then-else. C may run when A is true. - - -===================== 1 failed, 6 passed in 20.79 seconds ====================== +===================== 1 failed, 6 passed in 24.01 seconds ====================== diff --git a/test/test_shellcheck.py b/test/test_shellcheck.py index 7f777caf..43b27164 100644 --- a/test/test_shellcheck.py +++ b/test/test_shellcheck.py @@ -7,7 +7,7 @@ run_local = testinfra.get_backend( def test_scripts_pass_shellcheck(): ''' Make sure shellcheck does not find anything wrong with our shell scripts ''' - shellcheck = "find . -name 'basic-install.sh' | while read file; do shellcheck \"$file\"; done;" + shellcheck = "find . -name 'update.sh' | while read file; do shellcheck \"$file\"; done;" results = run_local(shellcheck) print results.stdout assert '' == results.stdout