@@ -235,33 +235,37 @@ def _filter_paths(self, key, paths):
235
235
filtered_paths = None
236
236
return filtered_paths
237
237
238
- def append_paths (self , key , paths , allow_abs = False , expand_relpaths = True ):
238
+ def append_paths (self , key , paths , allow_abs = False , expand_relpaths = True , delim = ':' ):
239
239
"""
240
240
Generate append-path statements for the given list of paths.
241
241
242
242
:param key: environment variable to append paths to
243
243
:param paths: list of paths to append
244
244
:param allow_abs: allow providing of absolute paths
245
245
:param expand_relpaths: expand relative paths into absolute paths (by prefixing install dir)
246
+ :param delim: delimiter used between paths
246
247
"""
247
248
paths = self ._filter_paths (key , paths )
248
249
if paths is None :
249
250
return ''
250
- return self .update_paths (key , paths , prepend = False , allow_abs = allow_abs , expand_relpaths = expand_relpaths )
251
+ return self .update_paths (key , paths , prepend = False , allow_abs = allow_abs , expand_relpaths = expand_relpaths ,
252
+ delim = delim )
251
253
252
- def prepend_paths (self , key , paths , allow_abs = False , expand_relpaths = True ):
254
+ def prepend_paths (self , key , paths , allow_abs = False , expand_relpaths = True , delim = ':' ):
253
255
"""
254
256
Generate prepend-path statements for the given list of paths.
255
257
256
258
:param key: environment variable to append paths to
257
259
:param paths: list of paths to append
258
260
:param allow_abs: allow providing of absolute paths
259
261
:param expand_relpaths: expand relative paths into absolute paths (by prefixing install dir)
262
+ :param delim: delimiter used between paths
260
263
"""
261
264
paths = self ._filter_paths (key , paths )
262
265
if paths is None :
263
266
return ''
264
- return self .update_paths (key , paths , prepend = True , allow_abs = allow_abs , expand_relpaths = expand_relpaths )
267
+ return self .update_paths (key , paths , prepend = True , allow_abs = allow_abs , expand_relpaths = expand_relpaths ,
268
+ delim = delim )
265
269
266
270
def _modulerc_check_module_version (self , module_version ):
267
271
"""
@@ -552,15 +556,16 @@ def unload_module(self, mod_name):
552
556
"""
553
557
raise NotImplementedError
554
558
555
- def update_paths (self , key , paths , prepend = True , allow_abs = False , expand_relpaths = True ):
559
+ def update_paths (self , key , paths , prepend = True , allow_abs = False , expand_relpaths = True , delim = ':' ):
556
560
"""
557
561
Generate prepend-path or append-path statements for the given list of paths.
558
562
559
563
:param key: environment variable to prepend/append paths to
560
- :param paths: list of paths to prepend
564
+ :param paths: list of paths to prepend/append
561
565
:param prepend: whether to prepend (True) or append (False) paths
562
566
:param allow_abs: allow providing of absolute paths
563
567
:param expand_relpaths: expand relative paths into absolute paths (by prefixing install dir)
568
+ :param delim: delimiter used between paths
564
569
"""
565
570
raise NotImplementedError
566
571
@@ -970,15 +975,16 @@ def msg_on_unload(self, msg):
970
975
print_cmd = "puts stderr %s" % quote_str (msg , tcl = True )
971
976
return '\n ' .join (['' , self .conditional_statement ("module-info mode unload" , print_cmd , indent = False )])
972
977
973
- def update_paths (self , key , paths , prepend = True , allow_abs = False , expand_relpaths = True ):
978
+ def update_paths (self , key , paths , prepend = True , allow_abs = False , expand_relpaths = True , delim = ':' ):
974
979
"""
975
980
Generate prepend-path or append-path statements for the given list of paths.
976
981
977
982
:param key: environment variable to prepend/append paths to
978
- :param paths: list of paths to prepend
983
+ :param paths: list of paths to prepend/append
979
984
:param prepend: whether to prepend (True) or append (False) paths
980
985
:param allow_abs: allow providing of absolute paths
981
986
:param expand_relpaths: expand relative paths into absolute paths (by prefixing install dir)
987
+ :param delim: delimiter used between paths
982
988
"""
983
989
if prepend :
984
990
update_type = 'prepend'
@@ -1010,7 +1016,8 @@ def update_paths(self, key, paths, prepend=True, allow_abs=False, expand_relpath
1010
1016
else :
1011
1017
abspaths .append (path )
1012
1018
1013
- statements = ['%s-path\t %s\t \t %s\n ' % (update_type , key , p ) for p in abspaths ]
1019
+ delim_opt = '' if delim == ':' else f' -d "{ delim } "'
1020
+ statements = [f'{ update_type } -path{ delim_opt } \t { key } \t \t { p } \n ' for p in abspaths ]
1014
1021
return '' .join (statements )
1015
1022
1016
1023
def set_alias (self , key , value ):
@@ -1161,6 +1168,7 @@ class ModuleGeneratorLua(ModuleGenerator):
1161
1168
1162
1169
PATH_JOIN_TEMPLATE = 'pathJoin(root, "%s")'
1163
1170
UPDATE_PATH_TEMPLATE = '%s_path("%s", %s)'
1171
+ UPDATE_PATH_TEMPLATE_DELIM = '%s_path("%s", %s, "%s")'
1164
1172
1165
1173
START_STR = '[==['
1166
1174
END_STR = ']==]'
@@ -1422,7 +1430,7 @@ def modulerc(self, module_version=None, filepath=None, modulerc_txt=None):
1422
1430
return super (ModuleGeneratorLua , self ).modulerc (module_version = module_version , filepath = filepath ,
1423
1431
modulerc_txt = modulerc_txt )
1424
1432
1425
- def update_paths (self , key , paths , prepend = True , allow_abs = False , expand_relpaths = True ):
1433
+ def update_paths (self , key , paths , prepend = True , allow_abs = False , expand_relpaths = True , delim = ':' ):
1426
1434
"""
1427
1435
Generate prepend_path or append_path statements for the given list of paths
1428
1436
@@ -1431,6 +1439,7 @@ def update_paths(self, key, paths, prepend=True, allow_abs=False, expand_relpath
1431
1439
:param prepend: whether to prepend (True) or append (False) paths
1432
1440
:param allow_abs: allow providing of absolute paths
1433
1441
:param expand_relpaths: expand relative paths into absolute paths (by prefixing install dir)
1442
+ :param delim: delimiter used between paths
1434
1443
"""
1435
1444
if prepend :
1436
1445
update_type = 'prepend'
@@ -1463,7 +1472,10 @@ def update_paths(self, key, paths, prepend=True, allow_abs=False, expand_relpath
1463
1472
else :
1464
1473
abspaths .append ('root' )
1465
1474
1466
- statements = [self .UPDATE_PATH_TEMPLATE % (update_type , key , p ) for p in abspaths ]
1475
+ if delim != ':' :
1476
+ statements = [self .UPDATE_PATH_TEMPLATE_DELIM % (update_type , key , p , delim ) for p in abspaths ]
1477
+ else :
1478
+ statements = [self .UPDATE_PATH_TEMPLATE % (update_type , key , p ) for p in abspaths ]
1467
1479
statements .append ('' )
1468
1480
return '\n ' .join (statements )
1469
1481
0 commit comments