浏览代码

xz compression

n1073645 5 年之前
父节点
当前提交
77a9481cf9
共有 1 个文件被更改,包括 16 次插入1 次删除
  1. 16 1
      src/core/lib/FileSignatures.mjs

+ 16 - 1
src/core/lib/FileSignatures.mjs

@@ -1485,7 +1485,7 @@ export const FILE_SIGNATURES = {
                 4: 0x5a,
                 5: 0x0
             },
-            extractor: null
+            extractor: extractXZ
         },
         {
             name: "Tarball",
@@ -2808,6 +2808,21 @@ export function extractZlib(bytes, offset) {
 }
 
 
+/**
+ * XZ extractor
+ *
+ * @param {Uint8Array} bytes
+ * @param {Number} offset
+ * @returns {string}
+ */
+export function extractXZ(bytes, offset) {
+    const stream = new Stream(bytes.slice(offset));
+    stream.continueUntil([0x00, 0x00, 0x00, 0x00, 0x04, 0x59, 0x5a]);
+    stream.moveForwardsBy(7);
+    return stream.carve();
+}
+
+
 /**
  * ELF extractor.
  *