summaryrefslogtreecommitdiff
path: root/STYLE
diff options
context:
space:
mode:
Diffstat (limited to 'STYLE')
-rw-r--r--STYLE53
1 files changed, 53 insertions, 0 deletions
diff --git a/STYLE b/STYLE
new file mode 100644
index 0000000..0fbd284
--- /dev/null
+++ b/STYLE
@@ -0,0 +1,53 @@
+This is the rc-scripts style manual. It governs the coding style
+of rc-scripts. Everything here might as well have been spoken by
+God. If you find any issues, please talk to base-system@gentoo.org
+or #gentoo-base on irc.freenode.net.
+
+#############
+# VARIABLES #
+#############
+- User Variables -
+ Variables must always be enclosed by {}
+ e.g. ${foo} ${bar}
+- Internal Shell Variables -
+ Do not use {} with internal variables unless appropriate
+ e.g. case $1 in
+ e.g. foo=$IFS
+ e.g. echo "blah${1}123"
+- Assigning with Quotes -
+ When assigning to a variable from another variable, you should
+ not need quotes. However, you do when assigning from a subshell.
+ e.g. foo=${bar}
+ e.g. foo="$(uname -a)"
+
+#########
+# TESTS #
+#########
+- Brackets -
+ Always use the [ ... ] form instead of [[ ... ]] as the later only really
+ works in bash, and we should support as many shells as we can.
+- Quoting -
+ When dealing with strings, you should quote both sides.
+
+###############
+# CODE BLOCKS #
+###############
+- Structure -
+ Use the more compact form
+ e.g. if ... ; then
+ e.g. while ... ; do
+ Do not use the older form
+ e.g. if ...
+ then
+- Functions -
+ Use the more compact form
+ e.g. foo() {
+ Do not lead with 'function '
+ e.g. function foo() {
+
+############
+# COMMENTS #
+############
+- General -
+ Try to include a comment block before sections
+ of code to explain what you're attempting