fix<MacOS>: new way to launch Terminal.app

This commit is contained in:
leo 2024-02-18 20:17:44 +08:00
parent d74a3fb550
commit a644a04b17

View file

@ -1,6 +1,7 @@
using System.Diagnostics;
using System.IO;
using System.Runtime.Versioning;
using System.Text;
namespace SourceGit.Native {
[SupportedOSPlatform("macOS")]
@ -31,11 +32,20 @@ namespace SourceGit.Native {
}
public void OpenTerminal(string workdir) {
Process.Start(new ProcessStartInfo() {
WorkingDirectory = workdir,
FileName = "/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal",
UseShellExecute = false,
});
var dir = string.IsNullOrEmpty(workdir) ? "~" : workdir;
var builder = new StringBuilder();
builder.AppendLine("on run argv");
builder.AppendLine(" tell application \"Terminal\"");
builder.AppendLine($" do script \"cd '{dir}'\"");
builder.AppendLine(" activate");
builder.AppendLine(" end tell");
builder.AppendLine("end run");
var tmp = Path.GetTempFileName();
File.WriteAllText(tmp, builder.ToString());
var proc = Process.Start("/usr/bin/osascript", $"\"{tmp}\"");
proc.Exited += (o, e) => File.Delete(tmp);
}
public void OpenWithDefaultEditor(string file) {