From 19c7241b996dcb9dc34f5b0fe40cd6e76e21320d Mon Sep 17 00:00:00 2001 From: Reasonix Date: Fri, 14 Aug 2026 17:35:20 +0800 Subject: [PATCH] =?UTF-8?q?build:=20offline=20=E5=AE=89=E8=A3=85=E5=99=A8?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=B8=85=E5=8D=95=E7=94=9F=E6=88=90=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=EF=BC=88node=5Fmodules=2033k=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup/gen-files.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 setup/gen-files.py diff --git a/setup/gen-files.py b/setup/gen-files.py new file mode 100644 index 0000000..8442d5c --- /dev/null +++ b/setup/gen-files.py @@ -0,0 +1,26 @@ +# Generate per-file [Files] entries for node_modules into setup-offline.iss +import io, os + +base = r'C:\Users\VanuSystems-Mu\AppData\Roaming\reasonix\global-workspace\dsh-app-staging\setup-offline' +nm_src = os.path.join(base, 'runtime', 'dsh', 'node_modules') +iss = os.path.join(base, 'setup-offline.iss') + +lines = [] +count = 0 +for r, _, fs in os.walk(nm_src): + for f in fs: + full = os.path.join(r, f) + rel = os.path.relpath(full, nm_src).replace('\\', '/') + destdir = '{app}/runtime/dsh/node_modules/' + os.path.dirname(rel).replace('\\', '/') + if destdir.endswith('/'): + destdir = destdir[:-1] + lines.append('Source: "runtime/dsh/node_modules/' + rel + '"; DestDir: "' + destdir + '"; Flags: ignoreversion nocompression') + count += 1 +print('generated', count, 'entries') + +s = io.open(iss, encoding='utf-8').read() +old = 'Source: "runtime/dsh/node_modules/*.*"; DestDir: "{app}/runtime/dsh/node_modules"; Flags: ignoreversion recursesubdirs createallsubdirs nocompression' +assert old in s, 'old line not found' +s = s.replace(old, '\n'.join(lines)) +io.open(iss, 'w', encoding='utf-8').write(s) +print('iss updated, lines:', len(s.splitlines()))