Mercurial > template
changeset 44:1230716dd497
Add section about shell
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 26 Feb 2019 09:06:34 +0100 |
parents | 7633bca60de0 |
children | a4220af96141 |
files | STYLE.md |
diffstat | 1 files changed, 60 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/STYLE.md Fri Feb 22 09:17:57 2019 +0100 +++ b/STYLE.md Tue Feb 26 09:06:34 2019 +0100 @@ -507,13 +507,72 @@ It's even worse as you may need to recompile a lot of files when you change a header rather than a source file. +Shell +===== + +In shell programming try to stick with POSIX shell whenever possible. Otherwise, +set the shebang to a different shell. + +Style +----- + +- Try to keep lines shorter than 80 columns + +Functions +--------- + +Don't use `function` keyword, just keep the function name. + +```sh +usage() +{ +} +``` + +It's usually recommended to prefix functions names with the program name to +avoid collisions with global commands. + +```sh +foo_clean() +{ +} + +foo_process() +{ +} +``` + +Options +------- + +For options, use `getopts` and prefer short options to long unless necessary. +Also set OPTERR=0 to avoid printing errors and do it yourself for UX +consistency. + +```sh +OPTERR=0 +while getopts "v" arg; do + case $arg in + v) + verbose=1 + ;; + esac +done +``` + +Naming +------ + +Use `UPPERCASE` variables for global variables and `lowercase` for temporary or +local variables. + CMake ===== Style ----- -- Try to keep line shorter than 80 columns +- Try to keep lines shorter than 80 columns ### Spaces