|
@@ -162,6 +162,10 @@ export class CommandExecutor {
|
|
|
buildCommandString(command, args = []) {
|
|
buildCommandString(command, args = []) {
|
|
|
// Escape arguments for shell execution
|
|
// Escape arguments for shell execution
|
|
|
const escapeArg = (arg) => {
|
|
const escapeArg = (arg) => {
|
|
|
|
|
+ // Always wrap empty strings in quotes to preserve them as arguments
|
|
|
|
|
+ if (arg === '') {
|
|
|
|
|
+ return "''";
|
|
|
|
|
+ }
|
|
|
// If arg contains spaces or special chars, wrap in single quotes
|
|
// If arg contains spaces or special chars, wrap in single quotes
|
|
|
if (arg.includes(' ') || arg.includes('$') || arg.includes('`') || arg.includes('"')) {
|
|
if (arg.includes(' ') || arg.includes('$') || arg.includes('`') || arg.includes('"')) {
|
|
|
return `'${arg.replace(/'/g, "'\\''")}'`;
|
|
return `'${arg.replace(/'/g, "'\\''")}'`;
|