diff options
Diffstat (limited to 'scripts/lib/bsp/engine.py')
| -rw-r--r-- | scripts/lib/bsp/engine.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/scripts/lib/bsp/engine.py b/scripts/lib/bsp/engine.py index 6309e29a23..8985544811 100644 --- a/scripts/lib/bsp/engine.py +++ b/scripts/lib/bsp/engine.py | |||
| @@ -38,6 +38,7 @@ from tags import * | |||
| 38 | import shlex | 38 | import shlex |
| 39 | import json | 39 | import json |
| 40 | import subprocess | 40 | import subprocess |
| 41 | import shutil | ||
| 41 | 42 | ||
| 42 | class Line(): | 43 | class Line(): |
| 43 | """ | 44 | """ |
| @@ -83,7 +84,7 @@ class NormalLine(Line): | |||
| 83 | 84 | ||
| 84 | def gen(self, context = None): | 85 | def gen(self, context = None): |
| 85 | if self.is_filename: | 86 | if self.is_filename: |
| 86 | line = "of = open(\"" + os.path.join(self.out_filebase, self.escape(self.line)) + "\", \"w\")" | 87 | line = "current_file = \"" + os.path.join(self.out_filebase, self.escape(self.line)) + "\"; of = open(current_file, \"w\")" |
| 87 | elif self.is_dirname: | 88 | elif self.is_dirname: |
| 88 | dirname = os.path.join(self.out_filebase, self.escape(self.line)) | 89 | dirname = os.path.join(self.out_filebase, self.escape(self.line)) |
| 89 | line = "if not os.path.exists(\"" + dirname + "\"): os.mkdir(\"" + dirname + "\")" | 90 | line = "if not os.path.exists(\"" + dirname + "\"): os.mkdir(\"" + dirname + "\")" |
| @@ -134,7 +135,7 @@ class AssignmentLine(NormalLine): | |||
| 134 | idx = line.find(ASSIGN_TAG) | 135 | idx = line.find(ASSIGN_TAG) |
| 135 | line = line[:idx] + replacement + line[idx + assignment.end - assignment.start:] | 136 | line = line[:idx] + replacement + line[idx + assignment.end - assignment.start:] |
| 136 | if self.is_filename: | 137 | if self.is_filename: |
| 137 | return "of = open(\"" + os.path.join(self.out_filebase, line) + "\", \"w\")" | 138 | return "current_file = \"" + os.path.join(self.out_filebase, line) + "\"; of = open(current_file, \"w\")" |
| 138 | elif self.is_dirname: | 139 | elif self.is_dirname: |
| 139 | dirname = os.path.join(self.out_filebase, line) | 140 | dirname = os.path.join(self.out_filebase, line) |
| 140 | return "if not os.path.exists(\"" + dirname + "\"): os.mkdir(\"" + dirname + "\")" | 141 | return "if not os.path.exists(\"" + dirname + "\"): os.mkdir(\"" + dirname + "\")" |
| @@ -564,6 +565,17 @@ def get_verified_file(input_str, name, filename_can_be_null): | |||
| 564 | filename = default(raw_input(msg), name) | 565 | filename = default(raw_input(msg), name) |
| 565 | 566 | ||
| 566 | 567 | ||
| 568 | def replace_file(replace_this, with_this): | ||
| 569 | """ | ||
| 570 | Replace the given file with the contents of filename, retaining | ||
| 571 | the original filename. | ||
| 572 | """ | ||
| 573 | try: | ||
| 574 | shutil.copy(with_this, replace_this) | ||
| 575 | except IOError: | ||
| 576 | pass | ||
| 577 | |||
| 578 | |||
| 567 | def boolean(input_str, name): | 579 | def boolean(input_str, name): |
| 568 | """ | 580 | """ |
| 569 | Return lowercase version of first char in string, or value in name. | 581 | Return lowercase version of first char in string, or value in name. |
| @@ -1197,7 +1209,7 @@ def gen_program_header_lines(program_lines): | |||
| 1197 | """ | 1209 | """ |
| 1198 | Generate any imports we need. | 1210 | Generate any imports we need. |
| 1199 | """ | 1211 | """ |
| 1200 | pass | 1212 | program_lines.append("current_file = \"\"") |
| 1201 | 1213 | ||
| 1202 | 1214 | ||
| 1203 | def gen_supplied_property_vals(properties, program_lines): | 1215 | def gen_supplied_property_vals(properties, program_lines): |
