From d9837ecb72a69d0a62f82fa777f1f1e4e0ee0cfb Mon Sep 17 00:00:00 2001 From: filoxenace Date: Thu, 25 Sep 2025 00:34:32 -0400 Subject: [PATCH] Fix bug with zlibDecompressFilesRecursive --- lib/cli.luau | 1 + lib/core.luau | 2 +- lib/fileproc.luau | 22 ---------------------- 3 files changed, 2 insertions(+), 23 deletions(-) diff --git a/lib/cli.luau b/lib/cli.luau index 15eabf3..bbc0527 100644 --- a/lib/cli.luau +++ b/lib/cli.luau @@ -62,6 +62,7 @@ function cli.parseArgs(): types.opts i = i + 1 elseif arg == "--zlib-decompress-recursive" then opts.zlibDecompressFilesRecursive = true + i = i + 1 else if not opts.directoryMode then table.insert(opts.filesToProcess, arg) diff --git a/lib/core.luau b/lib/core.luau index c8a1de8..e9009f6 100644 --- a/lib/core.luau +++ b/lib/core.luau @@ -39,7 +39,7 @@ end function core.fileContainsWorkspace(fileContents: string, opts: types.opts): boolean assert(typeof(fileContents) == "string", "Expected fileContents to be of type 'string'") assert(typeof(opts) == "table", "Expected opts to be of type 'table'") - if opts.zlibDecompressFiles then + if opts.zlibDecompressFiles or opts.zlibDecompressFilesRecursive then local success = pcall(function() fileContents = compression.zlibDecompress(fileContents, opts.zlibDecompressFilesRecursive) end) if not success then stdio.write(stdio.color("yellow")) diff --git a/lib/fileproc.luau b/lib/fileproc.luau index 4a00cae..fda696f 100644 --- a/lib/fileproc.luau +++ b/lib/fileproc.luau @@ -2,14 +2,12 @@ local fs = require("@lune/fs") local stdio = require("@lune/stdio") local process = require("@lune/process") -local serde = require("@lune/serde") local core = require("./core") local types = require("./types") export type FileProc = { collectFiles: (opts: types.opts) -> {string}, processFiles: (filesToProcess: {string}, opts: types.opts) -> {string}, - zlibDecompress: (contents: string, recursive: boolean?) -> string | boolean } local fileproc = {} :: FileProc @@ -90,25 +88,5 @@ function fileproc.processFiles(filesToProcess: {string}, opts: types.opts): {str return filesWithWorkspace end --- take in file contents and zlib decompress them --- if recursive param is true repeatedly zlib decompress the file until it fails --- (modelscrape files are often double/triple zlib decompressed) -function fileproc.zlibDecompress(contents: string, recursive: boolean?): string | boolean - assert(typeof(contents) == "string", "Expected contents to be of type 'string'") - if recursive == nil then recursive = false end - assert(typeof(recursive) == "boolean", "Expected recursive to be of type 'boolean'") - local success, decompressed = pcall(function() return serde.decompress("zlib", contents) end) - if not success then - return false - end - if recursive then - local nextDecompressed = fileproc.zlibDecompress(decompressed, true) - while nextDecompressed do - decompressed = nextDecompressed - nextDecompressed = fileproc.zlibDecompress(decompressed, true) - end - end - return decompressed -end return fileproc