xref: /freebsd/sys/contrib/openzfs/cmd/zed/zed.d/README (revision e25152834cdf3b353892835a4f3b157e066a8ed4)
1*eda14cbcSMatt MacyShell scripts are the recommended choice for ZEDLETs that mostly call
2*eda14cbcSMatt Macyother utilities and do relatively little data manipulation.
3*eda14cbcSMatt Macy
4*eda14cbcSMatt MacyShell scripts MUST work on both bash and dash.
5*eda14cbcSMatt Macy
6*eda14cbcSMatt MacyShell scripts MUST run cleanly through ShellCheck:
7*eda14cbcSMatt Macy  http://www.shellcheck.net/
8*eda14cbcSMatt Macy
9*eda14cbcSMatt MacyGeneral functions reside in "zed-functions.sh".  Use them where applicable.
10*eda14cbcSMatt Macy
11*eda14cbcSMatt MacyAdditional references that may be of use:
12*eda14cbcSMatt Macy
13*eda14cbcSMatt Macy  Google Shell Style Guide
14*eda14cbcSMatt Macy  https://github.com/google/styleguide/blob/gh-pages/shell.xml
15*eda14cbcSMatt Macy
16*eda14cbcSMatt Macy  Dash as /bin/sh
17*eda14cbcSMatt Macy  https://wiki.ubuntu.com/DashAsBinSh
18*eda14cbcSMatt Macy
19*eda14cbcSMatt Macy  Common shell script mistakes
20*eda14cbcSMatt Macy  http://www.pixelbeat.org/programming/shell_script_mistakes.html
21*eda14cbcSMatt Macy
22*eda14cbcSMatt Macy  Filenames and Pathnames in Shell: How to do it Correctly
23*eda14cbcSMatt Macy  http://www.dwheeler.com/essays/filenames-in-shell.html
24*eda14cbcSMatt Macy
25*eda14cbcSMatt Macy  Autoconf: Portable Shell Programming
26*eda14cbcSMatt Macy  https://www.gnu.org/software/autoconf/manual/autoconf.html#Portable-Shell
27*eda14cbcSMatt Macy
28*eda14cbcSMatt MacyPlease BE CONSISTENT with the existing style, check for errors,
29*eda14cbcSMatt Macyminimize dependencies where possible, try to be portable,
30*eda14cbcSMatt Macyand comment anything non-obvious.  Festina lente.
31