Пример #1
0
def activate_newly_installed() -> Do:
    new = yield Ribo.zoom_main(NS.inspect_either(lambda a: a.inactive))
    yield activate_multi(new)
    yield Ribo.zoom_main(activation_complete())
Пример #2
0
def activation_complete() -> Do:
    rplugins = yield NS.inspect_either(lambda a: a.uninitialized_rplugins)
    tracked = rplugins.filter(lambda a: a.rplugin.track)
    failed = yield NS.lift(initialize_plugins(tracked))
    yield NS.modify(lambda a: a.initialization_complete(failed))
Пример #3
0
def activate_by_names(plugins: List[str]) -> Do:
    getter = (lambda a: a.ready_rplugins) if plugins.empty else (
        lambda a: a.ready_by_name(plugins))
    rplugins = yield Ribo.zoom_main(NS.inspect_either(getter))
    yield (NS.error(resources.no_plugins_match_for_activation(plugins))
           if rplugins.empty else activate_multi(rplugins))
Пример #4
0
def deactivate_by_names(plugins: List[str]) -> Do:
    getter = (lambda a: a.active_rplugins) if plugins.empty else (
        lambda a: a.active_rplugins_by_name(plugins))
    rplugins = yield NS.inspect_either(getter)
    yield (NS.error(resources.no_plugins_match_for_deactivation(plugins))
           if rplugins.empty else deactivate_multi(rplugins))
Пример #5
0
def activate_multi(new_rplugins: List[Rplugin]) -> Do:
    active = yield Ribo.zoom_main(
        NS.inspect_either(lambda a: a.active_rplugins))
    active_rplugins = active.map(lambda a: a.rplugin)
    already_active, inactive = new_rplugins.split(active_rplugins.contains)
    yield inactive.traverse(activate_rplugin, NS).replace(already_active)