| 186 | } |
| 187 | |
| 188 | function detectOutputEncoding(chunk: Uint8Array) { |
| 189 | if (chunk[0] === 0xff && chunk[1] === 0xfe) return "utf-16le" |
| 190 | const pairs = Math.floor(chunk.length / 2) |
| 191 | if (pairs < 2) return "utf-8" |
| 192 | const oddZeroes = Array.from({ length: pairs }).filter((_, index) => chunk[index * 2 + 1] === 0).length |
| 193 | const evenZeroes = Array.from({ length: pairs }).filter((_, index) => chunk[index * 2] === 0).length |
| 194 | return oddZeroes >= Math.ceil(pairs / 3) && evenZeroes * 2 <= oddZeroes ? "utf-16le" : "utf-8" |
| 195 | } |
| 196 | |
| 197 | export function runWslInDistro(args: string[], distro?: string | null, opts?: RunWslOptions) { |
| 198 | return runWsl(wslArgs(args, distro), opts) |