You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@yetus.apache.org by aw...@apache.org on 2016/04/17 19:09:35 UTC
[4/5] yetus git commit: YETUS-289. shelldocs should output error
positions in lint mode
YETUS-289. shelldocs should output error positions in lint mode
Signed-off-by: Sean Busbey <bu...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/yetus/repo
Commit: http://git-wip-us.apache.org/repos/asf/yetus/commit/585e97d4
Tree: http://git-wip-us.apache.org/repos/asf/yetus/tree/585e97d4
Diff: http://git-wip-us.apache.org/repos/asf/yetus/diff/585e97d4
Branch: refs/heads/master
Commit: 585e97d45a86991e23b83ea32216d4b4b50fac60
Parents: 9f0f3d8
Author: Allen Wittenauer <aw...@apache.org>
Authored: Thu Apr 14 10:08:16 2016 -0700
Committer: Allen Wittenauer <aw...@apache.org>
Committed: Sun Apr 17 10:08:15 2016 -0700
----------------------------------------------------------------------
precommit/personality/accumulo.sh | 8 ++++++
precommit/personality/bigtop.sh | 43 +++--------------------------
precommit/personality/drill.sh | 3 +++
precommit/personality/flink.sh | 3 +++
precommit/personality/geode.sh | 3 +++
precommit/personality/hadoop.sh | 27 +++++++++++++++++++
precommit/personality/hbase.sh | 8 ++++++
precommit/personality/jmeter.sh | 10 +++++++
precommit/personality/kafka.sh | 8 ++++++
precommit/personality/orc.sh | 3 +++
precommit/personality/pig.sh | 8 ++++++
precommit/personality/samza.sh | 4 ++-
precommit/personality/tajo.sh | 3 +++
precommit/personality/tez.sh | 3 +++
shelldocs/shelldocs.py | 49 +++++++++++++++++++++++++---------
15 files changed, 130 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/accumulo.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/accumulo.sh b/precommit/personality/accumulo.sh
index de1b890..d99bf82 100755
--- a/precommit/personality/accumulo.sh
+++ b/precommit/personality/accumulo.sh
@@ -17,6 +17,9 @@
# Run all plugins
personality_plugins "all"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
@@ -33,6 +36,11 @@ function personality_globals
CHECKSTYLE_GOAL="check"
}
+## @description Queue up modules for this personality
+## @audience private
+## @stability evolving
+## @param repostatus
+## @param testtype
function personality_modules
{
local repostatus=$1
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/bigtop.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/bigtop.sh b/precommit/personality/bigtop.sh
index 039618b..c374289 100755
--- a/precommit/personality/bigtop.sh
+++ b/precommit/personality/bigtop.sh
@@ -16,6 +16,9 @@
personality_plugins "all,-checkstyle,-findbugs"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
# shellcheck disable=SC2034
@@ -26,44 +29,4 @@ function personality_globals
BUILDTOOL=gradle
# shellcheck disable=SC2034
GITHUB_REPO="apache/bigtop"
- # shellcheck disable=SC2034
- BIGTOP_PUPPETSETUP=false
-}
-
-add_test_type bigtop
-
-function bigtop_usage
-{
- yetus_add_option "--bigtop-puppet=[false|true]" "execute the bigtop puppet setup (needs sudo to root)"
-}
-
-function bigtop_parse_args
-{
- local i
-
- for i in "$@"; do
- case ${i} in
- --bigtop-puppet=*)
- BIGTOP_PUPPETSETUP=${i#*=}
- ;;
- esac
- done
-}
-
-function bigtop_precheck_postinstall
-{
- if [[ ${BIGTOP_PUPPETSETUP} = "true" ]]; then
- pushd "${BASEDIR}" >/dev/null
- echo_and_redirect "${PATCH_DIR}/bigtop-branch-toolchain.txt" "${GRADLEW}" toolchain
- popd >/dev/null
- fi
-}
-
-function bigtop_postapply_postinstall
-{
- if [[ ${BIGTOP_PUPPETSETUP} = "true" ]]; then
- pushd "${BASEDIR}" >/dev/null
- echo_and_redirect "${PATCH_DIR}/bigtop-patch-toolchain.txt" "${GRADLEW}" toolchain
- popd >/dev/null
- fi
}
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/drill.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/drill.sh b/precommit/personality/drill.sh
index 48fcb2e..b58ed07 100755
--- a/precommit/personality/drill.sh
+++ b/precommit/personality/drill.sh
@@ -16,6 +16,9 @@
personality_plugins "all"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/flink.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/flink.sh b/precommit/personality/flink.sh
index 8a077ac..6b4f0a8 100755
--- a/precommit/personality/flink.sh
+++ b/precommit/personality/flink.sh
@@ -16,6 +16,9 @@
personality_plugins "all"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/geode.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/geode.sh b/precommit/personality/geode.sh
index f345fe8..9f5c0ec 100755
--- a/precommit/personality/geode.sh
+++ b/precommit/personality/geode.sh
@@ -16,6 +16,9 @@
personality_plugins "all,-ant,-javac,-scalac,-scaladoc"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/hadoop.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/hadoop.sh b/precommit/personality/hadoop.sh
index 02df4b1..59dfd2c 100755
--- a/precommit/personality/hadoop.sh
+++ b/precommit/personality/hadoop.sh
@@ -18,6 +18,9 @@
personality_plugins "all,-ant,-gradle,-scalac,-scaladoc"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
@@ -32,6 +35,10 @@ function personality_globals
PYLINT_OPTIONS="--indent-string=' '"
}
+## @description Calculate the actual module ordering
+## @audience private
+## @stability evolving
+## @param ordering
function hadoop_order
{
declare ordering=$1
@@ -47,6 +54,10 @@ function hadoop_order
echo "${hadoopm}"
}
+## @description Install extra modules for unit tests
+## @audience private
+## @stability evolving
+## @param ordering
function hadoop_unittest_prereqs
{
declare input=$1
@@ -88,6 +99,10 @@ function hadoop_unittest_prereqs
fi
}
+## @description Calculate the flags/settings for native code
+## @description based upon the OS
+## @audience private
+## @stability evolving
function hadoop_native_flags
{
@@ -137,6 +152,11 @@ function hadoop_native_flags
esac
}
+## @description Queue up modules for this personality
+## @audience private
+## @stability evolving
+## @param repostatus
+## @param testtype
function personality_modules
{
declare repostatus=$1
@@ -269,6 +289,10 @@ function personality_modules
done
}
+## @description Add tests based upon personality needs
+## @audience private
+## @stability evolving
+## @param filename
function personality_file_tests
{
declare filename=$1
@@ -332,6 +356,9 @@ function personality_file_tests
fi
}
+## @description Image to print on success
+## @audience private
+## @stability evolving
function hadoop_console_success
{
printf "IF9fX19fX19fX18gCjwgU3VjY2VzcyEgPgogLS0tLS0tLS0tLSAKIFwgICAg";
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/hbase.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/hbase.sh b/precommit/personality/hbase.sh
index 7863bb2..352d2e3 100755
--- a/precommit/personality/hbase.sh
+++ b/precommit/personality/hbase.sh
@@ -16,6 +16,9 @@
personality_plugins "all"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
@@ -32,6 +35,11 @@ function personality_globals
MAVEN_OPTS="${MAVEN_OPTS:-"-Xmx3100M"}"
}
+## @description Queue up modules for this personality
+## @audience private
+## @stability evolving
+## @param repostatus
+## @param testtype
function personality_modules
{
local repostatus=$1
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/jmeter.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/jmeter.sh b/precommit/personality/jmeter.sh
index a9da710..194fc4f 100755
--- a/precommit/personality/jmeter.sh
+++ b/precommit/personality/jmeter.sh
@@ -16,6 +16,9 @@
personality_plugins "all,-javadoc,-findbugs,-asflicense"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
# shellcheck disable=SC2034
@@ -30,11 +33,18 @@ function personality_globals
add_test_type jmeter
+## @description Personality usage options
+## @audience private
+## @stability evolving
function jmeter_usage
{
yetus_add_option "--jmeter-download-jars=<bool>" "download third-party jars needed by ant build"
}
+## @description Process personality options
+## @audience private
+## @stability evolving
+## @param arguments
function jmeter_parse_args
{
declare i
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/kafka.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/kafka.sh b/precommit/personality/kafka.sh
index 8d866c9..0c2f749 100755
--- a/precommit/personality/kafka.sh
+++ b/precommit/personality/kafka.sh
@@ -16,6 +16,9 @@
personality_plugins "all,-checkstyle,-asflicense"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
@@ -30,6 +33,11 @@ function personality_globals
GITHUB_REPO="apache/kafka"
}
+## @description Queue up modules for this personality
+## @audience private
+## @stability evolving
+## @param repostatus
+## @param testtype
function personality_modules
{
declare repostatus=$1
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/orc.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/orc.sh b/precommit/personality/orc.sh
index b4fda31..0582b17 100755
--- a/precommit/personality/orc.sh
+++ b/precommit/personality/orc.sh
@@ -16,6 +16,9 @@
personality_plugins "all,-checkstyle,-findbugs"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/pig.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/pig.sh b/precommit/personality/pig.sh
index 639df01..2014fda 100755
--- a/precommit/personality/pig.sh
+++ b/precommit/personality/pig.sh
@@ -16,6 +16,9 @@
personality_plugins "all"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
@@ -28,6 +31,11 @@ function personality_globals
BUILDTOOL=ant
}
+## @description Queue up modules for this personality
+## @audience private
+## @stability evolving
+## @param repostatus
+## @param testtype
function personality_modules
{
local repostatus=$1
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/samza.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/samza.sh b/precommit/personality/samza.sh
index e649106..430ffbb 100755
--- a/precommit/personality/samza.sh
+++ b/precommit/personality/samza.sh
@@ -14,9 +14,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-
personality_plugins "all,-checkstyle"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/tajo.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/tajo.sh b/precommit/personality/tajo.sh
index ffe580a..32b4242 100755
--- a/precommit/personality/tajo.sh
+++ b/precommit/personality/tajo.sh
@@ -16,6 +16,9 @@
personality_plugins "all"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/precommit/personality/tez.sh
----------------------------------------------------------------------
diff --git a/precommit/personality/tez.sh b/precommit/personality/tez.sh
index 91ea0e5..4b0e3ec 100755
--- a/precommit/personality/tez.sh
+++ b/precommit/personality/tez.sh
@@ -16,6 +16,9 @@
personality_plugins "all"
+## @description Globals specific to this personality
+## @audience private
+## @stability evolving
function personality_globals
{
#shellcheck disable=SC2034
http://git-wip-us.apache.org/repos/asf/yetus/blob/585e97d4/shelldocs/shelldocs.py
----------------------------------------------------------------------
diff --git a/shelldocs/shelldocs.py b/shelldocs/shelldocs.py
index e575add..70d486c 100755
--- a/shelldocs/shelldocs.py
+++ b/shelldocs/shelldocs.py
@@ -66,7 +66,8 @@ def toc(tlist):
class ShellFunction(object):
"""a shell function"""
- def __init__(self):
+
+ def __init__(self, filename):
'''Initializer'''
self.name = None
self.audience = None
@@ -75,6 +76,8 @@ class ShellFunction(object):
self.returnt = None
self.desc = None
self.params = None
+ self.filename = filename
+ self.linenum = 0
def __cmp__(self, other):
'''comparison'''
@@ -102,6 +105,15 @@ class ShellFunction(object):
self.returnt = None
self.desc = None
self.params = None
+ self.linenum = 0
+ self.filename = None
+
+ def getfilename(self):
+ '''get the name of the function'''
+ if self.filename is None:
+ return "undefined"
+ else:
+ return self.filename
def setname(self, text):
'''set the name of the function'''
@@ -115,6 +127,14 @@ class ShellFunction(object):
else:
return self.name
+ def setlinenum(self, linenum):
+ '''set the line number of the function'''
+ self.linenum = linenum
+
+ def getlinenum(self):
+ '''get the line number of the function'''
+ return self.linenum
+
def setaudience(self, text):
'''set the audience of the function'''
self.audience = docstrip("audience", text)
@@ -249,13 +269,15 @@ class ShellFunction(object):
for attr in ("audience", "stability", "replaceable"):
value = getfuncs[attr]()
if value == "None":
- messages.append("ERROR: function %s has no @%s" %
- (self.getname(), attr.lower()))
+ messages.append("%s:%u: ERROR: function %s has no @%s" %
+ (self.getfilename(), self.getlinenum(),
+ self.getname(), attr.lower()))
elif value not in validvalues[attr]:
validvalue = "|".join(v.lower() for v in validvalues[attr])
messages.append(
- "ERROR: function %s has invalid value (%s) for @%s (%s)" %
- (self.getname(), value.lower(), attr.lower(), validvalue))
+ "%s:%u: ERROR: function %s has invalid value (%s) for @%s (%s)"
+ % (self.getfilename(), self.getlinenum(), self.getname(),
+ value.lower(), attr.lower(), validvalue))
return "\n".join(messages)
def __str__(self):
@@ -271,8 +293,8 @@ class ShellFunction(object):
def main():
'''main entry point'''
parser = OptionParser(
- usage=
- "usage: %prog [--skipprnorep] --output OUTFILE --input INFILE [--input INFILE ...]")
+ usage="usage: %prog [--skipprnorep] " + "[--output OUTFILE|--lint] " +
+ "--input INFILE " + "[--input INFILE ...]")
parser.add_option("-o",
"--output",
dest="outfile",
@@ -303,12 +325,12 @@ def main():
default=False,
help="display version information for shelldocs and exit.")
- (options, args) = parser.parse_args()
+ (options, dummy_args) = parser.parse_args()
if options.release_version:
with open(
- os.path.join(
- os.path.dirname(__file__), "../VERSION"), 'r') as ver_file:
+ os.path.join(
+ os.path.dirname(__file__), "../VERSION"), 'r') as ver_file:
print ver_file.read()
sys.exit(0)
@@ -322,8 +344,10 @@ def main():
try:
for filename in options.infile:
with open(filename, "r") as shellcode:
- funcdef = ShellFunction()
+ funcdef = ShellFunction(filename)
+ linenum = 0
for line in shellcode:
+ linenum = linenum + 1
if line.startswith('## @description'):
funcdef.adddesc(line)
elif line.startswith('## @audience'):
@@ -338,13 +362,14 @@ def main():
funcdef.addreturn(line)
elif line.startswith('function'):
funcdef.setname(line)
+ funcdef.setlinenum(linenum)
if options.skipprnorep and \
funcdef.getaudience() == "Private" and \
funcdef.getreplace() == "No":
pass
else:
allfuncs.append(funcdef)
- funcdef = ShellFunction()
+ funcdef = ShellFunction(filename)
except IOError, err:
print >> sys.stderr, "ERROR: Failed to read from file: %s. Aborting." % err.filename
sys.exit(1)