mirror of
https://github.com/frappe/frappe_docker.git
synced 2024-11-14 09:04:06 +00:00
47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
|
import click
|
||
|
import click.exceptions
|
||
|
import frappe.app
|
||
|
import frappe.database.db_manager
|
||
|
import frappe.utils.bench_helper
|
||
|
|
||
|
|
||
|
def patch_database_creator():
|
||
|
"""
|
||
|
We need to interrupt Frappe site database creation to monkeypatch
|
||
|
functions that resolve host for user that owns site database.
|
||
|
In frappe_docker this was implemented in "new" command:
|
||
|
https://github.com/frappe/frappe_docker/blob/c808ad1767feaf793a2d14541ac0f4d9cbab45b3/build/frappe-worker/commands/new.py#L87
|
||
|
"""
|
||
|
|
||
|
frappe.database.db_manager.DbManager.get_current_host = lambda self: "%"
|
||
|
|
||
|
|
||
|
def patch_click_usage_error():
|
||
|
bits: tuple[str, ...] = (
|
||
|
click.style(
|
||
|
"Only Frappe framework bench commands are available in container setup.",
|
||
|
fg="yellow",
|
||
|
bold=True,
|
||
|
),
|
||
|
"https://frappeframework.com/docs/v13/user/en/bench/frappe-commands",
|
||
|
)
|
||
|
notice = "\n".join(bits)
|
||
|
|
||
|
def format_message(self: click.exceptions.UsageError):
|
||
|
if "No such command" in self.message:
|
||
|
return f"{notice}\n\n{self.message}"
|
||
|
return self.message
|
||
|
|
||
|
click.exceptions.UsageError.format_message = format_message
|
||
|
|
||
|
|
||
|
def main() -> int:
|
||
|
patch_database_creator()
|
||
|
patch_click_usage_error()
|
||
|
frappe.utils.bench_helper.main()
|
||
|
return 0
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
raise SystemExit(main())
|