(self)
| 79 | |
| 80 | @job("compute the hash digest for assets") |
| 81 | def digest(self): |
| 82 | if not os.path.exists(self.deps_folder): |
| 83 | try: |
| 84 | os.makedirs(self.deps_folder) |
| 85 | except OSError: |
| 86 | logger.exception("🚨 having issues manipulating %s", self.deps_folder) |
| 87 | sys.exit(1) |
| 88 | |
| 89 | payload = {self.name: self.version} |
| 90 | |
| 91 | for folder in (self.deps_folder, self.build_folder): |
| 92 | copies = tuple( |
| 93 | _ |
| 94 | for _ in os.listdir(folder) |
| 95 | if os.path.splitext(_)[-1] in {".js", ".map"} |
| 96 | ) |
| 97 | logger.info("bundles in %s %s", folder, copies) |
| 98 | |
| 99 | for copy in copies: |
| 100 | payload[f"SHA256 ({copy})"] = compute_hash(self._concat(folder, copy)) |
| 101 | |
| 102 | with open(self._concat(self.main, "digest.json"), "w", encoding="utf-8") as fp: |
| 103 | json.dump(payload, fp, sort_keys=True, indent=4, separators=(",", ":")) |
| 104 | logger.info( |
| 105 | "bundle digest in digest.json:\n%s", |
| 106 | json.dumps(payload, sort_keys=True, indent=4), |
| 107 | ) |
| 108 | |
| 109 | @job("copy and generate the bundles") |
| 110 | def bundles(self, build=None): # pylint:disable=too-many-locals |
no test coverage detected