@@ -235,33 +235,37 @@ def _filter_paths(self, key, paths):
235235 filtered_paths = None
236236 return filtered_paths
237237
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 = ':' ):
239239 """
240240 Generate append-path statements for the given list of paths.
241241
242242 :param key: environment variable to append paths to
243243 :param paths: list of paths to append
244244 :param allow_abs: allow providing of absolute paths
245245 :param expand_relpaths: expand relative paths into absolute paths (by prefixing install dir)
246+ :param delim: delimiter used between paths
246247 """
247248 paths = self ._filter_paths (key , paths )
248249 if paths is None :
249250 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 )
251253
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 = ':' ):
253255 """
254256 Generate prepend-path statements for the given list of paths.
255257
256258 :param key: environment variable to append paths to
257259 :param paths: list of paths to append
258260 :param allow_abs: allow providing of absolute paths
259261 :param expand_relpaths: expand relative paths into absolute paths (by prefixing install dir)
262+ :param delim: delimiter used between paths
260263 """
261264 paths = self ._filter_paths (key , paths )
262265 if paths is None :
263266 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 )
265269
266270 def _modulerc_check_module_version (self , module_version ):
267271 """
@@ -552,15 +556,16 @@ def unload_module(self, mod_name):
552556 """
553557 raise NotImplementedError
554558
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 = ':' ):
556560 """
557561 Generate prepend-path or append-path statements for the given list of paths.
558562
559563 :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
561565 :param prepend: whether to prepend (True) or append (False) paths
562566 :param allow_abs: allow providing of absolute paths
563567 :param expand_relpaths: expand relative paths into absolute paths (by prefixing install dir)
568+ :param delim: delimiter used between paths
564569 """
565570 raise NotImplementedError
566571
@@ -970,15 +975,16 @@ def msg_on_unload(self, msg):
970975 print_cmd = "puts stderr %s" % quote_str (msg , tcl = True )
971976 return '\n ' .join (['' , self .conditional_statement ("module-info mode unload" , print_cmd , indent = False )])
972977
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 = ':' ):
974979 """
975980 Generate prepend-path or append-path statements for the given list of paths.
976981
977982 :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
979984 :param prepend: whether to prepend (True) or append (False) paths
980985 :param allow_abs: allow providing of absolute paths
981986 :param expand_relpaths: expand relative paths into absolute paths (by prefixing install dir)
987+ :param delim: delimiter used between paths
982988 """
983989 if prepend :
984990 update_type = 'prepend'
@@ -1010,7 +1016,8 @@ def update_paths(self, key, paths, prepend=True, allow_abs=False, expand_relpath
10101016 else :
10111017 abspaths .append (path )
10121018
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 ]
10141021 return '' .join (statements )
10151022
10161023 def set_alias (self , key , value ):
@@ -1161,6 +1168,7 @@ class ModuleGeneratorLua(ModuleGenerator):
11611168
11621169 PATH_JOIN_TEMPLATE = 'pathJoin(root, "%s")'
11631170 UPDATE_PATH_TEMPLATE = '%s_path("%s", %s)'
1171+ UPDATE_PATH_TEMPLATE_DELIM = '%s_path("%s", %s, "%s")'
11641172
11651173 START_STR = '[==['
11661174 END_STR = ']==]'
@@ -1422,7 +1430,7 @@ def modulerc(self, module_version=None, filepath=None, modulerc_txt=None):
14221430 return super (ModuleGeneratorLua , self ).modulerc (module_version = module_version , filepath = filepath ,
14231431 modulerc_txt = modulerc_txt )
14241432
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 = ':' ):
14261434 """
14271435 Generate prepend_path or append_path statements for the given list of paths
14281436
@@ -1431,6 +1439,7 @@ def update_paths(self, key, paths, prepend=True, allow_abs=False, expand_relpath
14311439 :param prepend: whether to prepend (True) or append (False) paths
14321440 :param allow_abs: allow providing of absolute paths
14331441 :param expand_relpaths: expand relative paths into absolute paths (by prefixing install dir)
1442+ :param delim: delimiter used between paths
14341443 """
14351444 if prepend :
14361445 update_type = 'prepend'
@@ -1463,7 +1472,10 @@ def update_paths(self, key, paths, prepend=True, allow_abs=False, expand_relpath
14631472 else :
14641473 abspaths .append ('root' )
14651474
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 ]
14671479 statements .append ('' )
14681480 return '\n ' .join (statements )
14691481
0 commit comments