diff --git a/packages/electron-app/electron/main/user-shell.ts b/packages/electron-app/electron/main/user-shell.ts index ee49e7c4..95640da8 100644 --- a/packages/electron-app/electron/main/user-shell.ts +++ b/packages/electron-app/electron/main/user-shell.ts @@ -20,24 +20,10 @@ function getDefaultShellPath(): string { return "/bin/bash" } -function wrapCommandForShell(command: string, shellPath: string): string { - const shellName = path.basename(shellPath) - - if (shellName.includes("bash")) { - return 'if [ -f ~/.bashrc ]; then source ~/.bashrc >/dev/null 2>&1; fi; ' + command - } - - if (shellName.includes("zsh")) { - return 'if [ -f ~/.zshrc ]; then source ~/.zshrc >/dev/null 2>&1; fi; ' + command - } - - return command -} - function buildShellArgs(shellPath: string): string[] { const shellName = path.basename(shellPath) - if (shellName.includes("zsh")) { - return ["-l", "-i", "-c"] + if (shellName.includes("zsh") || shellName.includes("bash")) { + return ["-i", "-l", "-c"] } return ["-l", "-c"] } @@ -59,12 +45,11 @@ export function buildUserShellCommand(userCommand: string): ShellCommand { } const shellPath = getDefaultShellPath() - const script = wrapCommandForShell(userCommand, shellPath) const args = buildShellArgs(shellPath) return { command: shellPath, - args: [...args, script], + args: [...args, userCommand], } } diff --git a/packages/tauri-app/src-tauri/src/cli_manager.rs b/packages/tauri-app/src-tauri/src/cli_manager.rs index 358523e3..613b1c2e 100644 --- a/packages/tauri-app/src-tauri/src/cli_manager.rs +++ b/packages/tauri-app/src-tauri/src/cli_manager.rs @@ -1288,8 +1288,11 @@ fn build_shell_args(shell: &str, command: &str) -> Vec { .unwrap_or("") .to_lowercase(); - let _ = shell_name; - vec!["-l".into(), "-c".into(), command.into()] + if shell_name.contains("zsh") || shell_name.contains("bash") { + vec!["-i".into(), "-l".into(), "-c".into(), command.into()] + } else { + vec!["-l".into(), "-c".into(), command.into()] + } } fn first_existing(paths: Vec>) -> Option {