You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					33 lines
				
				992 B
			
		
		
			
		
	
	
					33 lines
				
				992 B
			| 
								 
											6 years ago
										 
									 | 
							
								"""Functions that help us work with files and folders.
							 | 
						||
| 
								 | 
							
								"""
							 | 
						||
| 
								 | 
							
								import os
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def keymap(keyboard):
							 | 
						||
| 
								 | 
							
								    """Locate the correct directory for storing a keymap.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    Args:
							 | 
						||
| 
								 | 
							
								        keyboard
							 | 
						||
| 
								 | 
							
								            The name of the keyboard. Example: clueboard/66/rev3
							 | 
						||
| 
								 | 
							
								    """
							 | 
						||
| 
								 | 
							
								    for directory in ['.', '..', '../..', '../../..', '../../../..', '../../../../..']:
							 | 
						||
| 
								 | 
							
								        basepath = os.path.normpath(os.path.join('keyboards', keyboard, directory, 'keymaps'))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if os.path.exists(basepath):
							 | 
						||
| 
								 | 
							
								            return basepath
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    logging.error('Could not find keymaps directory!')
							 | 
						||
| 
								 | 
							
								    raise NoSuchKeyboardError('Could not find keymaps directory for: %s' % keyboard)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def normpath(path):
							 | 
						||
| 
								 | 
							
								    """Returns the fully resolved absolute path to a file.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    This function will return the absolute path to a file as seen from the
							 | 
						||
| 
								 | 
							
								    directory the script was called from.
							 | 
						||
| 
								 | 
							
								    """
							 | 
						||
| 
								 | 
							
								    if path and path[0] == '/':
							 | 
						||
| 
								 | 
							
								        return os.path.normpath(path)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return os.path.normpath(os.path.join(os.environ['ORIG_CWD'], path))
							 |