Spdk/scripts
Michal Berger d596ba87b2 check_format: Introduce shfmt tooling for .sh style enforcement
Add new dev tool for enforcing proper formatting of the Bash code
across the entire repo. This is done in order of defining a common
set of good practices to follow when writing .sh|Bash code.

As powerful as shfmt may be, it allows only for some specific rules
to be enforced, hence it still needs to work side by side with
shellcheck syntax-wise. If it comes to style, following rules are
being enforced:

  * indent_style = tab - Lines must be indented with tabs. The exception
			 from this rule is the use of heredocs with
			 <<BASH redirect operator. Spaces can be used to
			 format the line only if it's already preceded
			 with a tab.

  * binary_next_line = true - Lines can start with logical operators. E.g:

			      if [[ -v foo ]] \
			      	&& [[ -v bar ]]; then
				 ...
			      fi
  * switch_case_indent = true - case|esac patterns are indented with tabs.

  * space_redirects = true - redirect operators are followed with a space.
			     E.g: > foo over >foo.

In addition, shfmt will enforce its own Bash-style for different parts
of the code as well. Examples and more details can be found here:

  https://github.com/mvdan/sh

Change-Id: I6e5c8d79e6dba9c6471010f3d0f563dd34e62fd6
Signed-off-by: Michal Berger <michalx.berger@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1418
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2020-05-07 20:52:21 +00:00
..
ceph check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
perf autobuild: Use mktemp() for spdk workspace 2020-05-07 10:41:08 +00:00
rpc lib/accel: remove RPC for setting the module 2020-05-07 10:41:44 +00:00
spdkcli module/raid: make raid_level an enum instead of plain integer 2019-11-01 14:34:32 +00:00
vagrant check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
check_format.sh check_format: Introduce shfmt tooling for .sh style enforcement 2020-05-07 20:52:21 +00:00
common.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
config_converter.py global: rename copy to accel 2020-02-18 08:05:34 +00:00
detect_cc.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
dpdk_mem_info.py scripts: add a parser for the dpdk memory stats. 2020-01-24 05:46:43 +00:00
eofnl scripts/check_format: check trailing whitespace 2017-10-24 17:35:23 -04:00
fio.py scripts/fio.py: add argparse for command line parameters 2019-06-03 04:34:10 +00:00
gdb_macros.py scripts: Use range instead of xrange 2019-02-13 22:54:15 +00:00
gen_ftl.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
gen_nvme.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
genconfig.py genconfig.py: allow numbers in config option names 2020-02-20 14:40:19 +00:00
histogram.py histograms: add script for parsing histogram data 2019-01-24 14:14:32 +00:00
iostat.py script: add iostat.py to check bdev iostat 2020-01-22 13:51:41 +00:00
pkgdep.sh check_format: Introduce shfmt tooling for .sh style enforcement 2020-05-07 20:52:21 +00:00
posix.txt build: Automatically detect use of POSIX includes 2017-05-08 13:20:37 -07:00
prep_benchmarks.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
qat_setup.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
rpc_http_proxy.py scripts: Add SSL certificate option in rpc_http_proxy 2020-05-05 08:04:00 +00:00
rpc.py lib/accel: remove RPC for setting the module 2020-05-07 10:41:44 +00:00
setup.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
spdkcli.py spdkcli: fix pylint warnings 2019-10-22 17:23:00 +00:00