Improve external package location detection algorithm. (#5145)
Also inspect `PATH` to help locate an external package and provide a test for getting path from module's PATH. Fixes #5141
This commit is contained in:
		 Kelly (KT) Thompson
					Kelly (KT) Thompson
				
			
				
					committed by
					
						 becker33
						becker33
					
				
			
			
				
	
			
			
			 becker33
						becker33
					
				
			
						parent
						
							707b773aa2
						
					
				
				
					commit
					0558fd640e
				
			| @@ -53,7 +53,8 @@ def test_get_path_from_module(save_env): | |||||||
|     lines = ['prepend-path LD_LIBRARY_PATH /path/to/lib', |     lines = ['prepend-path LD_LIBRARY_PATH /path/to/lib', | ||||||
|              'setenv MOD_DIR /path/to', |              'setenv MOD_DIR /path/to', | ||||||
|              'setenv LDFLAGS -Wl,-rpath/path/to/lib', |              'setenv LDFLAGS -Wl,-rpath/path/to/lib', | ||||||
|              'setenv LDFLAGS -L/path/to/lib'] |              'setenv LDFLAGS -L/path/to/lib', | ||||||
|  |              'prepend-path PATH /path/to/bin'] | ||||||
|  |  | ||||||
|     for line in lines: |     for line in lines: | ||||||
|         module_func = '() { eval `echo ' + line + ' bash filler`\n}' |         module_func = '() { eval `echo ' + line + ' bash filler`\n}' | ||||||
|   | |||||||
| @@ -187,6 +187,12 @@ def get_path_from_module(mod): | |||||||
|         if L >= 0: |         if L >= 0: | ||||||
|             return line[L + 2:line.find('/lib')] |             return line[L + 2:line.find('/lib')] | ||||||
|  |  | ||||||
|  |     # If it sets the PATH, use it | ||||||
|  |     for line in text: | ||||||
|  |         if line.find('PATH') >= 0: | ||||||
|  |             path = get_argument_from_module_line(line) | ||||||
|  |             return path[:path.find('/bin')] | ||||||
|  |  | ||||||
|     # Unable to find module path |     # Unable to find module path | ||||||
|     return None |     return None | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user