init
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
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])}`
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user