File size: 1,842 Bytes
94bc4f4
2ce3ddd
 
 
 
94bc4f4
 
2ce3ddd
94bc4f4
 
 
 
 
 
 
 
 
 
 
 
 
 
2ce3ddd
 
 
94bc4f4
 
 
 
 
 
 
 
2ce3ddd
94bc4f4
 
 
 
 
 
 
2ce3ddd
 
94bc4f4
 
 
 
 
2ce3ddd
94bc4f4
2ce3ddd
 
94bc4f4
2ce3ddd
 
 
94bc4f4
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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.")