π File detail
utils/bash/shellPrefix.ts
π§© .tsπ 29 linesπΎ 1,028 bytesπ text
β Back to All Filesπ― Use case
This file lives under βutils/β, which covers cross-cutting helpers (shell, tempfiles, settings, messages, process input, β¦). On the API surface it exposes formatShellPrefixCommand β mainly functions, hooks, or classes. It composes internal code from shellQuote (relative imports).
Generated from folder role, exports, dependency roots, and inline comments β not hand-reviewed for every path.
π§ Inline summary
import { quote } from './shellQuote.js' /** * Parses a shell prefix that may contain an executable path and arguments. *
π€ Exports (heuristic)
formatShellPrefixCommand
π₯οΈ Source preview
import { quote } from './shellQuote.js'
/**
* Parses a shell prefix that may contain an executable path and arguments.
*
* Examples:
* - "bash" -> quotes as 'bash'
* - "/usr/bin/bash -c" -> quotes as '/usr/bin/bash' -c
* - "C:\Program Files\Git\bin\bash.exe -c" -> quotes as 'C:\Program Files\Git\bin\bash.exe' -c
*
* @param prefix The shell prefix string containing executable and optional arguments
* @param command The command to be executed
* @returns The properly formatted command string with quoted components
*/
export function formatShellPrefixCommand(
prefix: string,
command: string,
): string {
// Split on the last space before a dash to separate executable from arguments
const spaceBeforeDash = prefix.lastIndexOf(' -')
if (spaceBeforeDash > 0) {
const execPath = prefix.substring(0, spaceBeforeDash)
const args = prefix.substring(spaceBeforeDash + 1)
return `${quote([execPath])} ${args} ${quote([command])}`
} else {
return `${quote([prefix])} ${quote([command])}`
}
}