diff --git a/src/Squirrel/Utility.cs b/src/Squirrel/Utility.cs index a5b7048e7..d37ea8020 100644 --- a/src/Squirrel/Utility.cs +++ b/src/Squirrel/Utility.cs @@ -352,9 +352,10 @@ public static string FindHelperExecutable(string toFind, IEnumerable add { additionalDirs = additionalDirs ?? Enumerable.Empty(); var dirs = (new[] { Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) }) + .Concat(Environment.OSVersion.Platform != PlatformID.MacOSX ? Environment.GetEnvironmentVariable("PATH")?.Split(';') ?? Enumerable.Empty() : Enumerable.Empty()) .Concat(additionalDirs ?? Enumerable.Empty()); - var exe = @".\" + toFind; + var exe = Path.Combine(@".", toFind); return dirs .Select(x => Path.Combine(x, toFind)) .FirstOrDefault(x => File.Exists(x)) ?? exe; @@ -368,9 +369,9 @@ static string find7Zip() "..", "..", "..", "..", "vendor", "7zip" ); - return FindHelperExecutable("7z.exe", new[] { vendorDir }); + return FindHelperExecutable(Environment.OSVersion.Platform != PlatformID.MacOSX ? "7z" : "7z.exe", new[] { vendorDir }); } else { - return FindHelperExecutable("7z.exe"); + return FindHelperExecutable(Environment.OSVersion.Platform != PlatformID.MacOSX ? "7z" : "7z.exe"); } } @@ -382,7 +383,7 @@ public static async Task ExtractZipToDirectory(string zipFilePath, string outFol try { var cmd = sevenZip; var args = String.Format("x \"{0}\" -tzip -mmt on -aoa -y -o\"{1}\" *", zipFilePath, outFolder); - if (Environment.OSVersion.Platform != PlatformID.Win32NT) { + if (Environment.OSVersion.Platform != PlatformID.MacOSX && Environment.OSVersion.Platform != PlatformID.Win32NT) { cmd = "wine"; args = sevenZip + " " + args; } @@ -403,7 +404,7 @@ public static async Task CreateZipFromDirectory(string zipFilePath, string inFol try { var cmd = sevenZip; var args = String.Format("a \"{0}\" -tzip -aoa -y -mmt on *", zipFilePath); - if (Environment.OSVersion.Platform != PlatformID.Win32NT) { + if (Environment.OSVersion.Platform != PlatformID.MacOSX && Environment.OSVersion.Platform != PlatformID.Win32NT) { cmd = "wine"; args = sevenZip + " " + args; }