Skip to content

Commit 3f0cbd2

Browse files
author
Vladimir Kotal
committed
support passing environment variables to indexer
1 parent 2429111 commit 3f0cbd2

File tree

4 files changed

+21
-7
lines changed

4 files changed

+21
-7
lines changed

tools/src/main/python/command.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ def close(self):
223223
if self.env_vars:
224224
my_env = os.environ.copy()
225225
my_env.update(self.env_vars)
226+
self.logger.debug("environment variables: {}".format(my_env))
226227
my_args['env'] = my_env
227228
if self.limits:
228229
my_args['preexec_fn'] = \

tools/src/main/python/indexer.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class Indexer(Java):
4444
"""
4545

4646
def __init__(self, command, logger=None, java=None, jar='opengrok.jar',
47-
java_opts=None):
47+
java_opts=None, env_vars=None):
4848

4949
java_options = []
5050
java_options.extend(self.get_SCM_properties(logger))
@@ -53,7 +53,7 @@ def __init__(self, command, logger=None, java=None, jar='opengrok.jar',
5353
logger.debug("Java options: {}".format(java_options))
5454

5555
super().__init__(command, jar=jar, java=java, java_opts=java_options,
56-
logger=logger)
56+
logger=logger, env_vars=env_vars)
5757

5858
def get_SCM_properties(self, logger):
5959
"""
@@ -132,7 +132,8 @@ def FindCtags(logger):
132132
logger.warning("Unable to determine Universal CTags command")
133133

134134
indexer = Indexer(args.options, logger=logger, java=args.java,
135-
jar=args.jar, java_opts=args.java_opts)
135+
jar=args.jar, java_opts=args.java_opts,
136+
env_vars=args.environment)
136137
indexer.execute()
137138
ret = indexer.getretcode()
138139
if ret is None or ret != 0:

tools/src/main/python/java.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class Java(Command):
3737
"""
3838

3939
def __init__(self, command, logger=None, main_class=None, java=None,
40-
jar=None, java_opts=None, classpath=None):
40+
jar=None, java_opts=None, classpath=None, env_vars=None):
4141

4242
if not java:
4343
java = self.FindJava(logger)
@@ -60,10 +60,18 @@ def __init__(self, command, logger=None, main_class=None, java=None,
6060
java_command.append(jar)
6161
if main_class:
6262
java_command.append(main_class)
63+
env = None
64+
if env_vars:
65+
env = {}
66+
for spec in env_vars:
67+
if spec.find('=') != -1:
68+
name, value = spec.split('=')
69+
env[name] = value
70+
6371
java_command.extend(command)
6472
logger.debug("Java command: {}".format(java_command))
6573

66-
super().__init__(java_command, logger=logger)
74+
super().__init__(java_command, logger=logger, env_vars=env)
6775

6876
def FindJava(self, logger):
6977
"""
@@ -99,6 +107,8 @@ def get_javaparser():
99107
help='path to java binary')
100108
parser.add_argument('-J', '--java_opts',
101109
help='java options', action='append')
110+
parser.add_argument('-e', '--environment', action='append',
111+
help='Environment variables in the form of name=value')
102112

103113
group = parser.add_mutually_exclusive_group(required=True)
104114
group.add_argument('-a', '--jar',
@@ -129,7 +139,8 @@ def get_javaparser():
129139

130140
java = Java(args.options, logger=logger, java=args.java,
131141
jar=args.jar, java_opts=args.java_opts,
132-
classpath=args.classpath, main_class=args.mainclass)
142+
classpath=args.classpath, main_class=args.mainclass,
143+
env_vars=args.environment)
133144
java.execute()
134145
ret = java.getretcode()
135146
if ret is None or ret != 0:

tools/src/main/python/reindex-project.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ def get_config_file(logger, uri):
114114
java_opts.append("-Djava.util.logging.config.file={}".
115115
format(logprop_file))
116116
indexer = Indexer(command, logger=logger, jar=args.jar,
117-
java=args.java, java_opts=java_opts)
117+
java=args.java, java_opts=java_opts,
118+
env_vars=args.environment)
118119
indexer.execute()
119120
ret = indexer.getretcode()
120121
os.remove(conf_file)

0 commit comments

Comments
 (0)