mirror_zfs/cmd/zed/zed.d
Chris Dunlap aded9a6814 Cleanup ZEDLETs
This commit factors out several common ZEDLET code blocks into
zed-functions.sh.  This shortens the length of the scripts, thereby
(hopefully) making them easier to understand and maintain.

In addition, this commit revamps the coding style used by the
scripts to be more consistent and (again, hopefully) maintainable.
It now mostly follows the Google Shell Style Guide.  I've tried to
assimilate the following resources:

  Google Shell Style Guide
  https://google-styleguide.googlecode.com/svn/trunk/shell.xml

  Dash as /bin/sh
  https://wiki.ubuntu.com/DashAsBinSh

  Filenames and Pathnames in Shell: How to do it Correctly
  http://www.dwheeler.com/essays/filenames-in-shell.html

  Common shell script mistakes
  http://www.pixelbeat.org/programming/shell_script_mistakes.html

Finally, this commit updates the exit codes used by the ZEDLETs to be
more consistent with one another.

All scripts run cleanly through ShellCheck <http://www.shellcheck.net/>.
All scripts have been tested on bash and dash.

Signed-off-by: Chris Dunlap <cdunlap@llnl.gov>
2015-04-27 12:08:01 -07:00
..
all-debug.sh Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
all-syslog.sh Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
checksum-email.sh Initial implementation of zed (ZFS Event Daemon) 2014-04-02 13:10:03 -07:00
checksum-spare.sh Add automatic hot spare functionality 2014-04-02 13:10:08 -07:00
data-email.sh Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
generic-email.sh Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
io-email.sh Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
io-spare.sh Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
README Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
resilver.finish-email.sh Initial implementation of zed (ZFS Event Daemon) 2014-04-02 13:10:03 -07:00
scrub.finish-email.sh Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
zed-functions.sh Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00
zed.rc Cleanup ZEDLETs 2015-04-27 12:08:01 -07:00

Shell scripts are the recommended choice for ZEDLETs that mostly call
other utilities and do relatively little data manipulation.

Shell scripts MUST work on both bash and dash.

Shell scripts MUST run cleanly through ShellCheck:
  http://www.shellcheck.net/

General functions reside in "zed-functions.sh".  Use them where applicable.

Additional references that may be of use:

  Google Shell Style Guide
  https://google-styleguide.googlecode.com/svn/trunk/shell.xml

  Dash as /bin/sh
  https://wiki.ubuntu.com/DashAsBinSh

  Common shell script mistakes
  http://www.pixelbeat.org/programming/shell_script_mistakes.html

  Filenames and Pathnames in Shell: How to do it Correctly
  http://www.dwheeler.com/essays/filenames-in-shell.html

  Autoconf: Portable Shell Programming
  https://www.gnu.org/software/autoconf/manual/autoconf.html#Portable-Shell

Please BE CONSISTENT with the existing style, check for errors,
minimize dependencies where possible, try to be portable,
and comment anything non-obvious.  Festina lente.