shellcheck all Tor shell scripts
make shellcheck
checks these scripts:
find $(top_srcdir)/scripts/ -name "*.sh" -exec shellcheck {} +; \
if [ -d "$(top_srcdir)/scripts/test" ]; then \
shellcheck $(top_srcdir)/scripts/test/cov-diff $(top_builddir)/scripts/test/coverage; \
fi; \
But it's missing some scripts:
$ grep -r "#\!/bin/" . | grep -v "scripts/.*\.sh:"
# and then manually edited
./contrib/dist/torctl.in:#!/bin/sh
./contrib/dist/rc.subr:#!/bin/sh
./contrib/dist/tor.sh.in:#!/bin/sh
./contrib/dist/suse/tor.sh.in:#!/bin/sh
./contrib/dirauth-tools/nagios-check-tor-authority-cert:#!/bin/bash
./scripts/test/cov-diff:#!/bin/sh
./scripts/test/coverage:#!/bin/sh
./scripts/git/post-merge.git-hook:#!/bin/sh
./scripts/git/pre-push.git-hook:#!/bin/bash
./scripts/git/pre-commit.git-hook:#!/bin/bash
./doc/asciidoc-helper.sh:#!/bin/sh
./autogen.sh:#!/bin/sh
./src/test/test_ntor.sh:#!/bin/sh
./src/test/test_zero_length_keys.sh:#!/bin/sh
./src/test/test_workqueue_pipe.sh:#!/bin/sh
./src/test/test_workqueue_efd2.sh:#!/bin/sh
./src/test/test_rust.sh:#!/bin/sh
./src/test/test_rebind.sh:#!/bin/sh
./src/test/test_key_expiration.sh:#!/bin/sh
./src/test/zero_length_keys.sh:#!/bin/sh
./src/test/test_workqueue_cancel.sh:#!/bin/sh
./src/test/test_switch_id.sh:#!/bin/sh
./src/test/test_workqueue_socketpair.sh:#!/bin/sh
./src/test/test_workqueue_efd.sh:#!/bin/sh
./src/test/test_hs_ntor.sh:#!/bin/sh
./src/test/test_workqueue_pipe2.sh:#!/bin/sh
./src/test/fuzz/fixup_filenames.sh:#!/bin/sh
./src/test/fuzz/minimize.sh:#!/bin/sh
./src/test/test_bt.sh:#!/bin/sh
./src/test/test_keygen.sh:#!/bin/sh
./src/test/fuzz_static_testcases.sh:#!/bin/sh
./src/ext/ed25519/ref10/q2h.sh:#!/bin/sh
Let's gradually shellcheck these scripts, and add them to the Makefile? We should probably fix each group of scripts in a subticket.