You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gitbox@yetus.apache.org by aw...@apache.org on 2022/05/07 05:39:38 UTC
[yetus] branch main updated: YETUS-777. --version is broken in python programs (#277)
This is an automated email from the ASF dual-hosted git repository.
aw pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/yetus.git
The following commit(s) were added to refs/heads/main by this push:
new d036f2ae YETUS-777. --version is broken in python programs (#277)
d036f2ae is described below
commit d036f2aeb166acfd0d97e0c1913ea3f445c345c8
Author: Allen Wittenauer <aw...@apache.org>
AuthorDate: Fri May 6 22:39:33 2022 -0700
YETUS-777. --version is broken in python programs (#277)
---
precommit/src/main/python/jenkins-admin.py | 15 +++++++---
.../src/main/python/releasedocmaker/__init__.py | 11 +++++--
shelldocs/src/main/python/shelldocs.py | 35 +++++++++++++++++-----
3 files changed, 48 insertions(+), 13 deletions(-)
diff --git a/precommit/src/main/python/jenkins-admin.py b/precommit/src/main/python/jenkins-admin.py
index f193adfe..dbe261a2 100755
--- a/precommit/src/main/python/jenkins-admin.py
+++ b/precommit/src/main/python/jenkins-admin.py
@@ -29,6 +29,7 @@ from argparse import ArgumentParser
from tempfile import NamedTemporaryFile
from xml.etree import ElementTree
import os
+import pathlib
import re
import sys
import requests
@@ -160,10 +161,16 @@ def main(): #pylint: disable=too-many-branches, too-many-statements, too-many-l
# Handle the version string right away and exit
if options.release_version:
- with open(
- os.path.join(os.path.dirname(__file__), "..", "..",
- "VERSION")) as ver_file:
- print(ver_file.read())
+ execname = pathlib.Path(__file__)
+ binversion = execname.joinpath("..", "..", "VERSION").resolve()
+ mvnversion = execname.joinpath("..", "..", "..", "..", "..", ".mvn",
+ "maven.config").resolve()
+ if binversion.exists():
+ with open(binversion, encoding='utf-8') as ver_file:
+ print(ver_file.read().strip())
+ elif mvnversion.exists():
+ with open(mvnversion, encoding='utf-8') as ver_file:
+ print(ver_file.read().split('=')[1].strip())
sys.exit(0)
token_frag = ''
diff --git a/releasedocmaker/src/main/python/releasedocmaker/__init__.py b/releasedocmaker/src/main/python/releasedocmaker/__init__.py
index 588400f0..0a5043ec 100755
--- a/releasedocmaker/src/main/python/releasedocmaker/__init__.py
+++ b/releasedocmaker/src/main/python/releasedocmaker/__init__.py
@@ -112,12 +112,19 @@ def buildreadme(title, asf_license):
def getversion():
""" print the version file"""
basepath = pathlib.Path(__file__).parent.resolve()
- for versionfile in [basepath.resolve().joinpath('VERSION'),
- basepath.parent.parent.resolve().joinpath('VERSION')]:
+ for versionfile in [
+ basepath.resolve().joinpath('VERSION'),
+ basepath.parent.parent.resolve().joinpath('VERSION')
+ ]:
if versionfile.exists():
with open(versionfile, encoding='utf-8') as ver_file:
version = ver_file.read()
return version
+ mvnversion = basepath.parent.parent.parent.parent.parent.resolve(
+ ).joinpath('.mvn', 'maven.config')
+ if mvnversion.exists():
+ with open(mvnversion, encoding='utf-8') as ver_file:
+ return ver_file.read().split('=')[1].strip()
return 'Unknown'
diff --git a/shelldocs/src/main/python/shelldocs.py b/shelldocs/src/main/python/shelldocs.py
index 8bd9b3d0..0b8bfbe3 100755
--- a/shelldocs/src/main/python/shelldocs.py
+++ b/shelldocs/src/main/python/shelldocs.py
@@ -51,6 +51,7 @@ ASFLICENSE = '''
class ShellFunction: # pylint: disable=too-many-instance-attributes
"""a shell function"""
+
def __init__(self, filename='Unknown'):
'''Initializer'''
self.audience = ''
@@ -128,8 +129,7 @@ class ShellFunction: # pylint: disable=too-many-instance-attributes
elif value not in attrvalues:
if attribute == 'replacerawtext' and value == '':
continue
- validvalue = "|".join(v.lower()
- for v in attrvalues)
+ validvalue = "|".join(v.lower() for v in attrvalues)
logging.error(
"%s:%d:ERROR: function %s has invalid value (%s) for @%s (%s)",
self.filename, self.linenum, self.name, value.lower(),
@@ -162,7 +162,7 @@ class ProcessFile:
Comparison is case sensitive and the comment must be in
UPPERCASE.
"""
- with open(self.filename) as input_file: #pylint: disable=unspecified-encoding
+ with open(self.filename) as input_file: #pylint: disable=unspecified-encoding
for line in input_file:
if line.startswith(
"#") and line[1:].strip() == "SHELLDOC-IGNORE":
@@ -249,7 +249,7 @@ class ProcessFile:
return
try:
- with open(self.filename, "r") as shellcode: #pylint: disable=unspecified-encoding
+ with open(self.filename, "r") as shellcode: #pylint: disable=unspecified-encoding
# if the file contains a comment containing
# only "SHELLDOC-IGNORE" then skip that file
@@ -282,6 +282,7 @@ class ProcessFile:
class MarkdownReport:
''' generate a markdown report '''
+
def __init__(self, functions, filename=None):
self.filename = filename
self.filepath = pathlib.Path(self.filename)
@@ -320,6 +321,7 @@ class MarkdownReport:
def process_input(inputlist, skipprnorep):
""" take the input and loop around it """
+
def call_process_file(filename, skipsuperprivate):
''' handle building a ProcessFile '''
fileprocessor = ProcessFile(filename=filename,
@@ -347,6 +349,26 @@ def process_input(inputlist, skipprnorep):
return allfuncs
+def getversion():
+ """ print the version file"""
+ basepath = pathlib.Path(__file__).parent.resolve()
+ for versionfile in [
+ basepath.resolve().joinpath('VERSION'),
+ basepath.parent.resolve().joinpath('VERSION')
+ ]:
+ if versionfile.exists():
+ with open(versionfile, encoding='utf-8') as ver_file:
+ version = ver_file.read()
+ return version
+ mvnversion = basepath.parent.parent.parent.parent.resolve().joinpath(
+ '.mvn', 'maven.config')
+ if mvnversion.exists():
+ with open(mvnversion, encoding='utf-8') as ver_file:
+ return ver_file.read().split('=')[1].strip()
+
+ return 'Unknown'
+
+
def process_arguments():
''' deal with parameters '''
parser = ArgumentParser(
@@ -387,9 +409,7 @@ def process_arguments():
options = parser.parse_args()
if options.release_version:
- verfile = pathlib.Path(__file__).parent.joinpath('VERSION')
- with open(verfile, encoding='utf-8') as ver_file:
- print(ver_file.read())
+ print(getversion())
sys.exit(0)
if options.infile is None:
@@ -400,6 +420,7 @@ def process_arguments():
return options
+
def main():
'''main entry point'''
logging.basicConfig(format='%(message)s')