Exemple #1
0
    def __init__(self, session, contents, error=None):
        self.session = session
        self.filenames = []
        self.tmp = tempfile()
        self.tmp_backup = tempfile()
        self.filenames.append(self.tmp)
        port = session.ui.run_config.port

        data = contents.encode("utf-8")
        with open(self.tmp, "w") as writer:
            writer.write(data)
        with open(self.tmp_backup, "w") as writer:
            writer.write(data)

        self.error = error
        if error is not None:
            self.error_tmp = tempfile()
            with open(self.error_tmp, "w") as writer:
                writer.write(error.encode("utf-8"))
            self.filenames.append(self.error_tmp)

        args = self.shell_escape([b"-o", b"--"] + list(self.filenames))

        self.identifier = str(uuid.uuid4())
        self.json_data = json.dumps({
            "file_editor_finished": self.identifier}) + "\n"
        b64_data = self.json_data.encode("base64")
        b64_data = b64_data.replace(b" ", b"").replace(b"\n", b"")

        inner_command = self.base_inner_command % (
                b" ".join(args), b64_data, port)
        inner_command = inner_command.replace(b"\\'", b"'\"'\"'")
        self.command = self.outer_command % inner_command
        logger.info("Starting terminal editor with id %r: %s",
                self.identifier, self.command)
Exemple #2
0
    def __init__(self, *a, **kw):
        _TerminalLauncher.__init__(self, *a, **kw)

        self.tempfile = tempfile()
        with open(self.tempfile, "w") as temp_writer:
            temp_writer.write(self.command)

        self.osascript(self.applescript.format(tempfile=self.tempfile))
Exemple #3
0
    def __init__(self, session, contents, error=None):
        self.session = session
        self.identifier = str(uuid.uuid4())

        self.message = {
            "embedded_edit": {
                "identifier": self.identifier,
                "data": contents,
                "error": error
            }
        }
        self.logfile = tempfile()
        with open(self.logfile, "a") as writer:
            writer.write(json.dumps(self.message))
            writer.write('\n')
        logger.info("Starting embedded editor (logfile %s)",
                self.logfile)
        self.session.source.sendmessage(self.message)
Exemple #4
0
 def osascript(self, code):
     temp_code = tempfile()
     with open(temp_code, "w") as code_writer:
         code_writer.write(code)
     subprocess.call([b"osascript", temp_code])
     os.unlink(temp_code)