Spaces:
Running
Running
| import os, sys, traceback | |
| SITE_NAME = os.environ.get("SITE_NAME", "hisham-cmd-ofoqerp.hf.space") | |
| ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "admin") | |
| bench_path = "/home/frappe/frappe-bench" | |
| site_path = f"{bench_path}/sites/{SITE_NAME}" | |
| # Check prerequisites | |
| if not os.path.exists(f"{site_path}/site_config.json"): | |
| print(f"SKIP: site_config.json not found at {site_path}") | |
| sys.exit(0) | |
| bench_env = f"{bench_path}/env" | |
| python_versions = ["3.12", "3.11", "3.10", "3.9"] | |
| for ver in python_versions: | |
| p = f"{bench_env}/lib/python{ver}/site-packages" | |
| if os.path.exists(p) and p not in sys.path: | |
| sys.path.insert(0, p) | |
| sys.path.insert(0, f"{bench_path}/apps/frappe") | |
| sys.path.insert(0, f"{bench_path}/apps/erpnext") | |
| try: | |
| import frappe | |
| print(f"Frappe {frappe.__version__ if hasattr(frappe,'__version__') else ''} imported OK") | |
| except ImportError as e: | |
| print(f"FAIL: cannot import frappe: {e}") | |
| sys.exit(1) | |
| try: | |
| frappe.init(site=SITE_NAME, sites_path=f"{bench_path}/sites") | |
| print(f"frappe.init('{SITE_NAME}') OK") | |
| frappe.connect() | |
| print("frappe.connect() OK") | |
| except Exception as e: | |
| print(f"FAIL: frappe init/connect error: {e}") | |
| traceback.print_exc() | |
| sys.exit(1) | |
| try: | |
| frappe.utils.password.update_password("Administrator", ADMIN_PASSWORD) | |
| frappe.db.commit() | |
| print(f"Password updated for Administrator -> {ADMIN_PASSWORD}") | |
| except Exception as e: | |
| print(f"FAIL: password update error: {e}") | |
| traceback.print_exc() | |
| sys.exit(1) | |
| try: | |
| from frappe.core.doctype.user.user import generate_keys | |
| keys = generate_keys("Administrator") | |
| frappe.db.commit() | |
| print(f"API_KEY={keys['api_key']}") | |
| print(f"API_SECRET={keys['api_secret']}") | |
| except Exception as e: | |
| print(f"FAIL: API key generation error: {e}") | |
| frappe.destroy() | |
| print("Done.") | |