diff options
author | Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> | 2017-08-21 17:39:47 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-08-23 08:47:02 +0100 |
commit | e798b4e9808c9297ee7de01ebb381ca649777501 (patch) | |
tree | 7aaf44fa30627005c51ad1803d989cbf5d26934b /scripts/lib/devtool/__init__.py | |
parent | ee21e81cffa8b7bd976777a46ae51cb87599fed6 (diff) | |
download | poky-e798b4e9808c9297ee7de01ebb381ca649777501.tar.gz |
devtool: import: new plugin to import the devtool workspace
Takes a tar archive created by 'devtool export' and imports (untars) it
into the workspace. Currently the whole tar archive is imported, there
is no way to limit what is imported.
https://bugzilla.yoctoproject.org/show_bug.cgi?id=10510
[YOCTO #10510]
(From OE-Core rev: 2de8ba89ef10fefcc97246dfeb4b8d1e48ee8232)
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/devtool/__init__.py')
-rw-r--r-- | scripts/lib/devtool/__init__.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py index b231e46b16..14170cb69e 100644 --- a/scripts/lib/devtool/__init__.py +++ b/scripts/lib/devtool/__init__.py | |||
@@ -261,3 +261,39 @@ def get_bbclassextend_targets(recipefile, pn): | |||
261 | targets.append('%s-%s' % (pn, variant)) | 261 | targets.append('%s-%s' % (pn, variant)) |
262 | return targets | 262 | return targets |
263 | 263 | ||
264 | def replace_from_file(path, old, new): | ||
265 | """Replace strings on a file""" | ||
266 | |||
267 | def read_file(path): | ||
268 | data = None | ||
269 | with open(path) as f: | ||
270 | data = f.read() | ||
271 | return data | ||
272 | |||
273 | def write_file(path, data): | ||
274 | if data is None: | ||
275 | return | ||
276 | wdata = data.rstrip() + "\n" | ||
277 | with open(path, "w") as f: | ||
278 | f.write(wdata) | ||
279 | |||
280 | # In case old is None, return immediately | ||
281 | if old is None: | ||
282 | return | ||
283 | try: | ||
284 | rdata = read_file(path) | ||
285 | except IOError as e: | ||
286 | # if file does not exit, just quit, otherwise raise an exception | ||
287 | if e.errno == errno.ENOENT: | ||
288 | return | ||
289 | else: | ||
290 | raise | ||
291 | |||
292 | old_contents = rdata.splitlines() | ||
293 | new_contents = [] | ||
294 | for old_content in old_contents: | ||
295 | try: | ||
296 | new_contents.append(old_content.replace(old, new)) | ||
297 | except ValueError: | ||
298 | pass | ||
299 | write_file(path, "\n".join(new_contents)) | ||