diff --git a/switchboard/Utilities/AppleScriptTemplates.swift b/switchboard/Utilities/AppleScriptTemplates.swift index b518b99..091e446 100644 --- a/switchboard/Utilities/AppleScriptTemplates.swift +++ b/switchboard/Utilities/AppleScriptTemplates.swift @@ -138,7 +138,7 @@ enum GhosttyCommands { let assumeCmd = forConsole ? "assume -c" : "assume" let userShell = ProcessInfo.processInfo.environment["SHELL"] ?? "/bin/zsh" let shellName = URL(fileURLWithPath: userShell).lastPathComponent - return ["-e", userShell, "-l", "-c", "\(assumeCmd) '\(escapedProfile)'; exec \(shellName)"] + return ["-e", userShell, "-l", "-i", "-c", "\(assumeCmd) '\(escapedProfile)'; exec \(shellName)"] } } diff --git a/tests/StringEscapingTests.swift b/tests/StringEscapingTests.swift index 2e5ebc5..b37a72d 100644 --- a/tests/StringEscapingTests.swift +++ b/tests/StringEscapingTests.swift @@ -147,25 +147,28 @@ final class StringEscapingTests: XCTestCase { let args = GhosttyCommands.ghosttyArgs(profileName: "test-profile", forConsole: false) XCTAssertEqual(args[0], "-e") XCTAssertEqual(args[2], "-l") - XCTAssertEqual(args[3], "-c") - XCTAssertTrue(args[4].contains("assume 'test-profile'")) - XCTAssertFalse(args[4].contains("assume -c")) + XCTAssertEqual(args[3], "-i") + XCTAssertEqual(args[4], "-c") + XCTAssertTrue(args[5].contains("assume 'test-profile'")) + XCTAssertFalse(args[5].contains("assume -c")) } func testGhosttyCommand_AssumeConsole() { let args = GhosttyCommands.ghosttyArgs(profileName: "test-profile", forConsole: true) XCTAssertEqual(args[0], "-e") XCTAssertEqual(args[2], "-l") - XCTAssertEqual(args[3], "-c") - XCTAssertTrue(args[4].contains("assume -c 'test-profile'")) + XCTAssertEqual(args[3], "-i") + XCTAssertEqual(args[4], "-c") + XCTAssertTrue(args[5].contains("assume -c 'test-profile'")) } func testGhosttyCommand_WithQuotesInProfile() { let args = GhosttyCommands.ghosttyArgs(profileName: "it's-my-profile", forConsole: false) XCTAssertEqual(args[0], "-e") XCTAssertEqual(args[2], "-l") - XCTAssertEqual(args[3], "-c") - XCTAssertTrue(args[4].contains("assume 'it'\\''s-my-profile'")) + XCTAssertEqual(args[3], "-i") + XCTAssertEqual(args[4], "-c") + XCTAssertTrue(args[5].contains("assume 'it'\\''s-my-profile'")) } // MARK: - Edge Cases