import subprocess, os, sys, glob, shutil

PROJ = r"C:\Users\danam\SGT-FANTASTIC-08-06-26\Local\PixieSprout"
os.chdir(PROJ)
env = os.environ.copy()
env["ANDROID_HOME"] = r"C:\Users\danam\AppData\Local\Android\Sdk"
env["NODE_ENV"] = "production"

# Decrypt keystore password
gpg_pass = open(r"android\app\keystore\gpg-passphrase.env").read().strip().split("=", 1)[1]
res = subprocess.run(
    ["gpg", "--quiet", "--batch", "--passphrase-fd", "0", "--decrypt",
     r"android\app\keystore\keystore.properties.gpg"],
    input=gpg_pass.encode(), capture_output=True)
store_pass = ""
for line in res.stdout.decode().strip().split("\n"):
    if line.startswith("storePassword="):
        store_pass = line.split("=", 1)[1]
        break
env["PIXIESPROUT_STORE_PASS"] = store_pass
print("keystore pass loaded:", bool(store_pass))

# Embed fresh bundle
os.makedirs("android/app/src/main/assets", exist_ok=True)
hbc = glob.glob("dist/_expo/static/js/android/*.hbc")[0]
shutil.copy2(hbc, "android/app/src/main/assets/index.android.bundle")
print("bundle embedded:", hbc)

# assembleRelease WITHOUT clean — use gradlew.bat on Windows (bash resolves to WSL here)
print("starting assembleRelease...")
r = subprocess.run(["cmd", "/c", "gradlew.bat", "assembleRelease"], cwd="android", env=env,
                   timeout=1500, capture_output=True, text=True)
print("exit:", r.returncode)
tail = (r.stdout or "")[-5000:]
print(tail[-5000:])
if r.returncode != 0:
    print("STDERR tail:", (r.stderr or "")[-2000:])
