diff --git a/build_differ.py b/build_differ.py index e90466e..3c37c17 100644 --- a/build_differ.py +++ b/build_differ.py @@ -52,6 +52,10 @@ def main(): print("Building for Windows...") run_command('dotnet publish ./csproj -c Release -r win-x64 --self-contained') + # Build for macOS + print("Building for macOS...") + run_command('dotnet publish ./csproj -c Release -r osx-x64 --self-contained') + # Compress the Linux build linux_build_dir = './csproj/bin/Release/net8.0/linux-x64' compress_files(linux_build_dir, f"./dist/linux-x64-{version}.tar.gz") @@ -60,6 +64,10 @@ def main(): windows_build_dir = './csproj/bin/Release/net8.0/win-x64' compress_files(windows_build_dir, f"./dist/win-x64-{version}.zip") + # Compress the macOS build + macos_build_dir = './csproj/bin/Release/net8.0/osx-x64' + compress_files(macos_build_dir, f"./dist/osx-x64-{version}.tar.gz") + print("Build and compression complete.") diff --git a/dist/linux-x64-0.0.1.tar.gz b/dist/linux-x64-0.0.1.tar.gz index 0be05b6..46ef67b 100644 Binary files a/dist/linux-x64-0.0.1.tar.gz and b/dist/linux-x64-0.0.1.tar.gz differ diff --git a/dist/osx-x64-0.0.1.tar.gz b/dist/osx-x64-0.0.1.tar.gz new file mode 100644 index 0000000..1c88f3b Binary files /dev/null and b/dist/osx-x64-0.0.1.tar.gz differ diff --git a/dist/win-x64-0.0.1.zip b/dist/win-x64-0.0.1.zip index d58439c..78e15c9 100644 Binary files a/dist/win-x64-0.0.1.zip and b/dist/win-x64-0.0.1.zip differ diff --git a/src/python_redlines/engines.py b/src/python_redlines/engines.py index 054e7e4..0775630 100644 --- a/src/python_redlines/engines.py +++ b/src/python_redlines/engines.py @@ -44,6 +44,14 @@ def _unzip_binary(self): with zipfile.ZipFile(zip_path, 'r') as zip_ref: zip_ref.extractall(target_path) + elif os_name == 'darwin': + zip_name = f"osx-{arch}-{__version__}.tar.gz" + binary_name = 'osx-x64/redlines' + zip_path = os.path.join(binaries_path, zip_name) + if not os.path.exists(zip_path): + with tarfile.open(zip_path, 'r:gz') as tar_ref: + tar_ref.extractall(target_path) + else: raise EnvironmentError("Unsupported OS")