# 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()))