summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python/create_manifest2.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/python/python/create_manifest2.py')
-rw-r--r--meta/recipes-devtools/python/python/create_manifest2.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/meta/recipes-devtools/python/python/create_manifest2.py b/meta/recipes-devtools/python/python/create_manifest2.py
index 87999991d7..b6748653b6 100644
--- a/meta/recipes-devtools/python/python/create_manifest2.py
+++ b/meta/recipes-devtools/python/python/create_manifest2.py
@@ -22,7 +22,7 @@
22# 22#
23# 23#
24# This way we will create a new manifest from the data structure that was built during 24# This way we will create a new manifest from the data structure that was built during
25# this process, ont this new manifest each package will contain specifically only 25# this process, on this new manifest each package will contain specifically only
26# what it needs to run. 26# what it needs to run.
27# 27#
28# There are some caveats which we try to deal with, such as repeated files on different 28# There are some caveats which we try to deal with, such as repeated files on different
@@ -30,7 +30,7 @@
30# Its also important to note that this method only works for python files, and shared 30# Its also important to note that this method only works for python files, and shared
31# libraries. Static libraries, header files and binaries need to be dealt with manually. 31# libraries. Static libraries, header files and binaries need to be dealt with manually.
32# 32#
33# Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29@gmail.com> 33# Author: Alejandro Enedino Hernandez Samaniego "aehs29" <aehs29 at gmail dot com>
34 34
35 35
36import sys 36import sys
@@ -62,10 +62,21 @@ def isFolder(value):
62 else: 62 else:
63 return False 63 return False
64 64
65def prepend_comments(comments, json_manifest):
66 with open(json_manifest, 'r+') as manifest:
67 json_contents = manifest.read()
68 manifest.seek(0, 0)
69 manifest.write(comments + json_contents)
70
65# Read existing JSON manifest 71# Read existing JSON manifest
66with open('python2-manifest.json') as manifest: 72with open('python2-manifest.json') as manifest:
67 old_manifest = json.load(manifest, object_pairs_hook=collections.OrderedDict) 73 # The JSON format doesn't allow comments so we hack the call to keep the comments using a marker
68 74 manifest_str = manifest.read()
75 json_start = manifest_str.find('# EOC') + 6 # EOC + \n
76 manifest.seek(0)
77 comments = manifest.read(json_start)
78 manifest_str = manifest.read()
79 old_manifest = json.loads(manifest_str, object_pairs_hook=collections.OrderedDict)
69 80
70# First pass to get core-package functionality, because we base everything on the fact that core is actually working 81# First pass to get core-package functionality, because we base everything on the fact that core is actually working
71# Not exactly the same so it should not be a function 82# Not exactly the same so it should not be a function
@@ -277,3 +288,5 @@ for key in new_manifest:
277# Create the manifest from the data structure that was built 288# Create the manifest from the data structure that was built
278with open('python2-manifest.json.new','w') as outfile: 289with open('python2-manifest.json.new','w') as outfile:
279 json.dump(new_manifest,outfile, indent=4) 290 json.dump(new_manifest,outfile, indent=4)
291
292prepend_comments(comments,'python2-manifest.json.new')