diff options
-rw-r--r-- | meta/classes/toaster.bbclass | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/meta/classes/toaster.bbclass b/meta/classes/toaster.bbclass index e307014a6a..51a4c74e5b 100644 --- a/meta/classes/toaster.bbclass +++ b/meta/classes/toaster.bbclass | |||
@@ -143,23 +143,33 @@ python toaster_image_dumpdata() { | |||
143 | image_types.bbclass will spell out IMAGE_CMD_xxx variables that actually | 143 | image_types.bbclass will spell out IMAGE_CMD_xxx variables that actually |
144 | have hardcoded ways to create image file names in them. | 144 | have hardcoded ways to create image file names in them. |
145 | So we look for files starting with the set name. | 145 | So we look for files starting with the set name. |
146 | |||
147 | We also look for other files in the images/ directory which don't | ||
148 | match IMAGE_NAME, such as the kernel bzImage, modules tarball etc. | ||
146 | """ | 149 | """ |
147 | 150 | ||
148 | deploy_dir_image = d.getVar('DEPLOY_DIR_IMAGE', True); | 151 | dir_to_walk = d.getVar('DEPLOY_DIR_IMAGE', True); |
149 | image_name = d.getVar('IMAGE_NAME', True); | 152 | image_name = d.getVar('IMAGE_NAME', True); |
150 | image_info_data = {} | 153 | image_info_data = {} |
154 | artifact_info_data = {} | ||
151 | 155 | ||
152 | # collect all images | 156 | # collect all images and artifacts in the images directory |
153 | for dirpath, dirnames, filenames in os.walk(deploy_dir_image): | 157 | for dirpath, dirnames, filenames in os.walk(dir_to_walk): |
154 | for fn in filenames: | 158 | for filename in filenames: |
159 | full_path = os.path.join(dirpath, filename) | ||
155 | try: | 160 | try: |
156 | if fn.startswith(image_name): | 161 | if filename.startswith(image_name): |
157 | image_output = os.path.join(dirpath, fn) | 162 | # image |
158 | image_info_data[image_output] = os.stat(image_output).st_size | 163 | image_info_data[full_path] = os.stat(full_path).st_size |
164 | else: | ||
165 | # other non-image artifact | ||
166 | if not os.path.islink(full_path): | ||
167 | artifact_info_data[full_path] = os.stat(full_path).st_size | ||
159 | except OSError as e: | 168 | except OSError as e: |
160 | bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d) | 169 | bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d) |
161 | 170 | ||
162 | bb.event.fire(bb.event.MetadataEvent("ImageFileSize", image_info_data), d) | 171 | bb.event.fire(bb.event.MetadataEvent("ImageFileSize", image_info_data), d) |
172 | bb.event.fire(bb.event.MetadataEvent("ArtifactFileSize", artifact_info_data), d) | ||
163 | } | 173 | } |
164 | 174 | ||
165 | python toaster_artifact_dumpdata() { | 175 | python toaster_artifact_dumpdata() { |
@@ -167,16 +177,16 @@ python toaster_artifact_dumpdata() { | |||
167 | Dump data about artifacts in the SDK_DEPLOY directory | 177 | Dump data about artifacts in the SDK_DEPLOY directory |
168 | """ | 178 | """ |
169 | 179 | ||
170 | artifact_dir = d.getVar("SDK_DEPLOY", True) | 180 | dir_to_walk = d.getVar("SDK_DEPLOY", True) |
171 | artifact_info_data = {} | 181 | artifact_info_data = {} |
172 | 182 | ||
173 | # collect all artifacts | 183 | # collect all artifacts in the sdk directory |
174 | for dirpath, dirnames, filenames in os.walk(artifact_dir): | 184 | for dirpath, dirnames, filenames in os.walk(dir_to_walk): |
175 | for fn in filenames: | 185 | for filename in filenames: |
186 | full_path = os.path.join(dirpath, filename) | ||
176 | try: | 187 | try: |
177 | artifact_path = os.path.join(dirpath, fn) | 188 | if not os.path.islink(full_path): |
178 | if not os.path.islink(artifact_path): | 189 | artifact_info_data[full_path] = os.stat(full_path).st_size |
179 | artifact_info_data[artifact_path] = os.stat(artifact_path).st_size | ||
180 | except OSError as e: | 190 | except OSError as e: |
181 | bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d) | 191 | bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d) |
182 | 192 | ||