예제 #1
0
파일: pid.py 프로젝트: tek/chiasma-py
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}`')
예제 #2
0
파일: main.py 프로젝트: tek/chiasma-py
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)))