From 7ab8d86396cf84cfeedae086f261b9596691d748 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Sun, 08 Feb 2026 01:15:14 +0000
Subject: [PATCH] Try to allow vcs rebuilds

---
 verify_build_logic.py |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/verify_build_logic.py b/verify_build_logic.py
new file mode 100644
index 0000000..b59a3f8
--- /dev/null
+++ b/verify_build_logic.py
@@ -0,0 +1,44 @@
+import asyncio
+from pathlib import Path
+import os
+import sys
+
+# Add src to path
+sys.path.insert(0, str(Path(__file__).parent / "src"))
+
+from archrepobuild.builder import _run_makepkg
+
+async def test_already_built():
+    print("Testing 'already built' message handling...")
+    
+    # Create a mock PKGBUILD directory
+    test_dir = Path("test_build_logic")
+    test_dir.mkdir(exist_ok=True)
+    pkgbuild = test_dir / "PKGBUILD"
+    pkgbuild.write_text("pkgname=testpkg\npkgver=1.0\npkgrel=1\narch=('any')\n")
+    
+    # Manually create a dummy package file to trigger the error if we run twice
+    package_file = test_dir / "testpkg-1.0-1-any.pkg.tar.zst"
+    package_file.write_text("dummy")
+    
+    # Run _run_makepkg. It should fail with returncode != 0 but we should catch it.
+    # Note: We can't easily mock the subprocess output of makepkg here 
+    # but we can check if it behaves correctly when real makepkg is called.
+    
+    success, error, artifacts = _run_makepkg(test_dir, force=False)
+    
+    print(f"Success: {success}")
+    print(f"Error: {error}")
+    print(f"Artifacts: {artifacts}")
+    
+    if success and "testpkg-1.0-1-any.pkg.tar.zst" in [a.name for a in artifacts]:
+        print("✓ Successfully handled 'already built' message")
+    else:
+        print("✗ Failed to handle 'already built' message (or makepkg didn't report it)")
+
+    # Cleanup
+    shutil = __import__('shutil')
+    shutil.rmtree(test_dir)
+
+if __name__ == "__main__":
+    asyncio.run(test_already_built())

--
Gitblit v1.10.0