Esempio n. 1
0
def ensure_session(session: Session) -> Do:
    exists = yield TS.lift(session.id.map(session_exists) | TmuxIO.pure(false))
    yield TS.pure(session) if exists else create_and_update_session(session)
Esempio n. 2
0
 def recurse() -> Do:
     result = yield thunk()
     done = check(result)
     yield (TmuxIO.pure(result) if done else TmuxIO.error(error)
            if time.time() - start > timeout else wait_and_recurse())
Esempio n. 3
0
 def pure(self, a: A) -> TmuxIO[A]:
     return TmuxIO.pure(a)
Esempio n. 4
0
def simple_tmux_cmd_attrs(cmd: str, args: List[str], attrs: List[str]) -> Do:
    output = yield TmuxIO.read(cmd, '-F', tmux_fmt_attrs(attrs), *args)
    yield TmuxIO.pure(output / L(tmux_attr_map)(attrs, _))
Esempio n. 5
0
def capture_pane(id: int) -> Do:
    output = yield TmuxIO.read(*pane_cmd(id, 'capture-pane', '-p'))
    yield TmuxIO.pure(output.reversed.drop_while(_ == '').reversed)
Esempio n. 6
0
def pane_from_data(window: Window, pane: Pane) -> Do:
    yield (pane_loc(window, pane) /
           pane_from_loc).value_or(lambda e: TmuxIO.pure(Left(e)))
Esempio n. 7
0
def tmux_pane_open(pane: Ident) -> Do:
    tpane = yield pane_by_ident(pane)
    yield TS.lift(tpane.id.cata(pane_open, lambda: TmuxIO.pure(false)))
Esempio n. 8
0
 def from_id(self, st: State[S, A]) -> 'TmuxIOState[S, A]':
     return st.transform_f(TmuxIOState, lambda s: TmuxIO.pure(s.value))