svn commit: r242215 - user/crees/rclint

Chris Rees crees at FreeBSD.org
Sun Oct 28 10:33:20 UTC 2012


Author: crees (ports committer)
Date: Sun Oct 28 10:33:19 2012
New Revision: 242215
URL: http://svn.freebsd.org/changeset/base/242215

Log:
  Unbreak function detection logic, and check that it is indented

Modified:
  user/crees/rclint/errors.en
  user/crees/rclint/rclint.py

Modified: user/crees/rclint/errors.en
==============================================================================
--- user/crees/rclint/errors.en	Sun Oct 28 10:18:46 2012	(r242214)
+++ user/crees/rclint/errors.en	Sun Oct 28 10:33:19 2012	(r242215)
@@ -9,6 +9,7 @@ error_id	message	explanation
 file_order	Order of rc file incorrect	Order of the rc file should be shebang/header/$FreeBSD$/sourcing rc_subr/name/rcvar/load_rc_config/setting defaults/setting other definitions/defining functions.  Do not include unassociated shell commands, and blocks must be separated by single blank lines.  Single blank lines may appear inside the defaults, definitions and functions blocks
 
 functions_chown	Useless use of chown?	Using chown in functions can nearly always be replaced with appropriate use of install(1)
+functions_indent	Unindented function contents	Style dictates that indentation of rc scripts should be tabs.  Ensure that function contents are indented
 functions_inline_brace	Inline brace in function	Put the opening brace for a function ({) on its own line
 functions_neverending	Unclosed function block	Functions must end with a closing brace on its own line
 functions_problem	Function incorrectly defined	Functions should not have spaces in the definition
@@ -31,7 +32,7 @@ run_rc_argument	Incorrect argument to ru
 shebang	Incorrect shebang used	All rc scripts must start with the correct shebang; #!/bin/sh
 
 variables_defaults_mandatory_colon	Override blanks in mandatory values (:=/:- vs =/-)	Values that must not be blank (such as _enable) should be set by default as ${var:=value}; thus disallowing blank values (man sh)
-variables_defaults_non_mandatory_colon	Do not clobber blank values for non-mandatory variables	Syntax for variables that are not mandatory is ${var=value}; including := will override var="" set in rc.conf (man sh)
+variables_defaults_non_mandatory_colon	Do not clobber blank values for non-mandatory variables	Syntax for variables that are not mandatory is ${var=value}; including := will override var="" set in rc.conf (man sh).  If this variable is mandatory just for this script, then ignore this error
 variables_defaults_old_style	Prefer condensed version for setting default values of variables	When setting the default value for a variable, it is much less verbose and clearer to use the : ${variable=var} notation, as well as it being obvious that the source and destination variable are the same
 variables_order	Order of variables incorrect	Order of the variables should be setting defaults then setting other variables
 

Modified: user/crees/rclint/rclint.py
==============================================================================
--- user/crees/rclint/rclint.py	Sun Oct 28 10:18:46 2012	(r242214)
+++ user/crees/rclint/rclint.py	Sun Oct 28 10:33:19 2012	(r242215)
@@ -194,7 +194,7 @@ class RcsId:
 
 class Function:
     def __init__(self, lines, num):
-        if lines[0] and lines[0][-1] == '{':
+        if len(lines[0]) > 1 and lines[0][-1] == '{':
             error.give('functions_inline_brace', num)
         elif lines[1] and lines[1][0] == '{':
             try:
@@ -210,6 +210,8 @@ class Function:
                     error.give('functions_neverending', num)
                     break
                 self.value.append(lines[self.length])
+                if self.value[-1] and self.value[-1][0] not in '\t {}':
+                    error.give('functions_indent', num + self.length)
             # Remove { and } lines from length
             self.length -= 2
             logging.debug('Found function %s' % self.name)


More information about the svn-src-user mailing list