|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2005 - 2009 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing the writer class for writing an XML project debugger properties file. |
|
8 """ |
|
9 |
|
10 import os |
|
11 import time |
|
12 |
|
13 from E4Gui.E4Application import e4App |
|
14 |
|
15 from XMLWriterBase import XMLWriterBase |
|
16 from Config import debuggerPropertiesFileFormatVersion |
|
17 |
|
18 import Preferences |
|
19 |
|
20 class DebuggerPropertiesWriter(XMLWriterBase): |
|
21 """ |
|
22 Class implementing the writer class for writing an XML project debugger properties |
|
23 file. |
|
24 """ |
|
25 def __init__(self, file, projectName): |
|
26 """ |
|
27 Constructor |
|
28 |
|
29 @param file open file (like) object for writing |
|
30 @param projectName name of the project (string) |
|
31 """ |
|
32 XMLWriterBase.__init__(self, file) |
|
33 |
|
34 self.name = projectName |
|
35 self.project = e4App().getObject("Project") |
|
36 |
|
37 def writeXML(self): |
|
38 """ |
|
39 Public method to write the XML to the file. |
|
40 """ |
|
41 XMLWriterBase.writeXML(self) |
|
42 |
|
43 self._write('<!DOCTYPE DebuggerProperties SYSTEM "DebuggerProperties-%s.dtd">' % \ |
|
44 debuggerPropertiesFileFormatVersion) |
|
45 |
|
46 # add some generation comments |
|
47 self._write("<!-- eric4 debugger properties file for project %s -->" % self.name) |
|
48 self._write("<!-- This file was generated automatically, do not edit. -->") |
|
49 if Preferences.getProject("XMLTimestamp"): |
|
50 self._write("<!-- Saved: %s -->" % time.strftime('%Y-%m-%d, %H:%M:%S')) |
|
51 |
|
52 # add the main tag |
|
53 self._write('<DebuggerProperties version="%s">' % \ |
|
54 debuggerPropertiesFileFormatVersion) |
|
55 |
|
56 self._write(' <Interpreter>%s</Interpreter>' % \ |
|
57 self.project.debugProperties["INTERPRETER"]) |
|
58 |
|
59 self._write(' <DebugClient>%s</DebugClient>' % \ |
|
60 self.project.debugProperties["DEBUGCLIENT"]) |
|
61 |
|
62 self._write(' <Environment override="%d">%s</Environment>' % \ |
|
63 (self.project.debugProperties["ENVIRONMENTOVERRIDE"], |
|
64 self.escape(self.project.debugProperties["ENVIRONMENTSTRING"]))) |
|
65 |
|
66 self._write(' <RemoteDebugger on="%d">' % \ |
|
67 self.project.debugProperties["REMOTEDEBUGGER"]) |
|
68 self._write(' <RemoteHost>%s</RemoteHost>' % \ |
|
69 self.project.debugProperties["REMOTEHOST"]) |
|
70 self._write(' <RemoteCommand>%s</RemoteCommand>' % \ |
|
71 self.escape(self.project.debugProperties["REMOTECOMMAND"])) |
|
72 self._write(' </RemoteDebugger>') |
|
73 |
|
74 self._write(' <PathTranslation on="%d">' % \ |
|
75 self.project.debugProperties["PATHTRANSLATION"]) |
|
76 self._write(' <RemotePath>%s</RemotePath>' % \ |
|
77 self.project.debugProperties["REMOTEPATH"]) |
|
78 self._write(' <LocalPath>%s</LocalPath>' % \ |
|
79 self.project.debugProperties["LOCALPATH"]) |
|
80 self._write(' </PathTranslation>') |
|
81 |
|
82 self._write(' <ConsoleDebugger on="%d">%s</ConsoleDebugger>' % \ |
|
83 (self.project.debugProperties["CONSOLEDEBUGGER"], |
|
84 self.escape(self.project.debugProperties["CONSOLECOMMAND"]))) |
|
85 |
|
86 self._write(' <Redirect on="%d" />' % \ |
|
87 self.project.debugProperties["REDIRECT"]) |
|
88 |
|
89 self._write(' <Noencoding on="%d" />' % \ |
|
90 self.project.debugProperties["NOENCODING"]) |
|
91 |
|
92 self._write("</DebuggerProperties>", newline = False) |