Exemplo n.º 1
0
def discover_pane_by_pid(target_pid: int) -> Do:
    panes = yield all_panes()
    indicators = yield TmuxIO.from_io(
        panes.traverse(lambda a: contains_child_pid(target_pid, a), IO))
    candidate = panes.zip(indicators).find_map(lambda a: a[1].m(a[0]))
    yield TmuxIO.from_maybe(candidate,
                            f'could not find pane with pid `{target_pid}`')
Exemplo n.º 2
0
def pane_dir(pane: P) -> Do:
    ui_pane = yield TmuxIO.from_either(UiPane.e_for(pane))
    yield (ui_pane.cwd(pane) / TmuxIO.pure).get_or(lambda: TmuxIO.from_io(IO.delay(Path.cwd)))