| #!/usr/bin/env node |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| import { chmodSync, existsSync, readdirSync, statSync } from 'node:fs'; |
| import { createRequire } from 'node:module'; |
| import { dirname, join } from 'node:path'; |
|
|
| function nodePtyRoot() { |
| const require = createRequire(import.meta.url); |
| |
| |
| const entry = require.resolve('node-pty', { |
| paths: [join(process.cwd(), 'packages/services'), process.cwd()], |
| }); |
| |
| return dirname(dirname(entry)); |
| } |
|
|
| try { |
| const root = nodePtyRoot(); |
| const prebuilds = join(root, 'prebuilds'); |
| if (!existsSync(prebuilds)) process.exit(0); |
| let fixed = 0; |
| for (const arch of readdirSync(prebuilds)) { |
| const helper = join(prebuilds, arch, 'spawn-helper'); |
| if (!existsSync(helper)) continue; |
| const mode = statSync(helper).mode; |
| if ((mode & 0o111) === 0o111) continue; |
| chmodSync(helper, 0o755); |
| fixed++; |
| } |
| if (fixed > 0) console.log(`[fix-node-pty-perms] made ${fixed} spawn-helper binary(ies) executable`); |
| } catch (err) { |
| console.warn('[fix-node-pty-perms] skipped:', err instanceof Error ? err.message : String(err)); |
| } |
| process.exit(0); |
|
|