| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -5,17 +5,28 @@ const fs = require('fs'); | |||
| 5 | 5 | const path = require('path'); | |
| 6 | 6 | const { pathToFileURL } = require('url'); | |
| 7 | 7 | const { isMainThread } = require('worker_threads'); | |
| 8 | + const isUnixLike = process.platform !== 'win32'; | ||
| 9 | + let escapePOSIXShell; | ||
| 8 | 10 | ||
| 9 | 11 | function rmSync(pathname, useSpawn) { | |
| 10 | 12 | if (useSpawn) { | |
| 11 | - const escapedPath = pathname.replaceAll('\\', '\\\\'); | ||
| 12 | - spawnSync( | ||
| 13 | - process.execPath, | ||
| 14 | - [ | ||
| 15 | - '-e', | ||
| 16 | - `require("fs").rmSync("${escapedPath}", { maxRetries: 3, recursive: true, force: true });`, | ||
| 17 | - ], | ||
| 18 | - ); | ||
| 13 | + if (isUnixLike) { | ||
| 14 | + escapePOSIXShell ??= require('./index.js').escapePOSIXShell; | ||
| 15 | + for (let i = 0; i < 3; i++) { | ||
| 16 | + const { status } = spawnSync(...escapePOSIXShell`rm -rf "${pathname}"`); | ||
| 17 | + if (status === 0) { | ||
| 18 | + break; | ||
| 19 | + } | ||
| 20 | + } | ||
| 21 | + } else { | ||
| 22 | + spawnSync( | ||
| 23 | + process.execPath, | ||
| 24 | + [ | ||
| 25 | + '-e', | ||
| 26 | + `fs.rmSync(${JSON.stringify(pathname)}, { maxRetries: 3, recursive: true, force: true });`, | ||
| 27 | + ], | ||
| 28 | + ); | ||
| 29 | + } | ||
| 19 | 30 | } else { | |
| 20 | 31 | fs.rmSync(pathname, { maxRetries: 3, recursive: true, force: true }); | |
| 21 | 32 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments