import subprocess
import os
import re
GEMINI_PATH = "/home/ward/.nvm/versions/node/v20.19.5/bin/gemini"
def strip_ansi(text: str) -> str:
ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|[0-?]*[ -/]*[@-~])')
return ansi_escape.sub('', text)
def process_gemini_output(result: subprocess.CompletedProcess) -> str:
output = strip_ansi(result.stdout).strip() if result.stdout else ""
return output
def run_gemini_version():
cmd = [GEMINI_PATH, "--version"]
print(f"Executing: {cmd}")
try:
result = subprocess.run(
cmd,
capture_output=True,
text=True,
check=False,
encoding='utf-8'
)
print("Return code:", result.returncode)
print("Stdout preview:", result.stdout[:50] if result.stdout else "None")
print("Stderr preview:", result.stderr[:50] if result.stderr else "None")
return process_gemini_output(result)
except Exception as e:
return str(e)
if __name__ == "__main__":
print("Result:", run_gemini_version())