mirror of https://gitlab.com/KKlochko/tui-rsync
				
				
				
			
							parent
							
								
									a4a0f32f52
								
							
						
					
					
						commit
						769edabbd3
					
				@ -0,0 +1,4 @@
 | 
				
			||||
from .app_exception import AppException
 | 
				
			||||
from .command_exception import CommandException
 | 
				
			||||
 | 
				
			||||
__all__ = ['AppException', 'CommandException']
 | 
				
			||||
@ -0,0 +1,3 @@
 | 
				
			||||
 | 
				
			||||
class AppException(Exception):
 | 
				
			||||
    pass
 | 
				
			||||
@ -0,0 +1,6 @@
 | 
				
			||||
from . import AppException
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
class CommandException(AppException):
 | 
				
			||||
    """Command failed to change persistence data."""
 | 
				
			||||
    pass
 | 
				
			||||
@ -0,0 +1,3 @@
 | 
				
			||||
from .exception_helpers import catch_exception
 | 
				
			||||
 | 
				
			||||
__all__ = ['catch_exception']
 | 
				
			||||
@ -0,0 +1,18 @@
 | 
				
			||||
from functools import wraps
 | 
				
			||||
 | 
				
			||||
import typer
 | 
				
			||||
from rich.console import Console
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
def catch_exception(which_exception, exit_code=1):
 | 
				
			||||
    def decorator(func):
 | 
				
			||||
        @wraps(func)
 | 
				
			||||
        def wrapper(*args, **kwargs):
 | 
				
			||||
            try:
 | 
				
			||||
                return func(*args, **kwargs)
 | 
				
			||||
            except which_exception as e:
 | 
				
			||||
                console = Console()
 | 
				
			||||
                console.print(f'[red b][ERROR] {str(e)}[/]')
 | 
				
			||||
                raise typer.Exit(code=exit_code)
 | 
				
			||||
        return wrapper
 | 
				
			||||
    return decorator
 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue