ofoqerp / init_admin.py
OfoqERP Deploy
fix: robust init_admin.py with better error handling and version detection
94bc4f4
Raw
History Blame Contribute Delete
1.84 kB
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.")