Exemple #1
0
 def execute_cmds(self, cmds: List[TmuxCmd]) -> List[TmuxCmdResult]:
     socket_args = self.socket / (lambda a: ['-L', a]) | []
     proc = Popen(args=['tmux'] + socket_args + ['-C', 'attach'],
                  stdin=PIPE,
                  stdout=PIPE,
                  stderr=PIPE,
                  universal_newlines=True)
     cmdlines = (cmds / _.cmdline).cat('').join_lines
     stdout, stderr = proc.communicate(cmdlines)
     results = create_cmd_results(cmds, Lists.lines(stdout))
     return (List(TmuxCmdFatal(cmds, PError(Lists.lines(stderr))))
             if proc.returncode == 0 and results.empty else results)
Exemple #2
0
def update_for(path: Path, files: Files) -> Files:
    return files if path in files else files + (path, Lists.lines(path.read_text()))
Exemple #3
0
def file_line(file: str, lineno: int) -> Do:
    path = yield Try(Path, file)
    text = yield Try(path.read_text)
    yield Lists.lines(text).lift(lineno).to_either(
        'frame_data: invalid line number in frame')