Decorator: ensure that packages are installed on host given by fabric
    argument `-H` (local or remote).

def needs_packages(*packages):
    '''Decorator: ensure that packages are installed on host given by fabric
    argument `-H` (local or remote).
    '''
    def real_decorator(func):

        @wraps(func)
        def wrapper(*args, **kwargs):
            non_installed = _non_installed(packages)
            if non_installed:
                what_for = 'in order to run this task'
                install_packages(non_installed, what_for=what_for)
            return func(*args, **kwargs)

        return wrapper

    return real_decorator