# Copyright (c) 2022, JINGROW and Contributors # GNU GPLv3 License. See license.txt import os import subprocess import jingrow from jingrow import safe_decode from jingrow.integrations.jingrow_providers.frappecloud_billing import is_fc_site from jingrow.utils import cint, get_system_timezone from jingrow.utils.telemetry import capture no_cache = 1 def get_context(): jingrow.db.commit() context = jingrow._dict() context.boot = get_boot() if jingrow.session.user != "Guest": capture("active_site", "crm") return context @jingrow.whitelist(methods=["POST"], allow_guest=True) def get_context_for_dev(): if not jingrow.conf.developer_mode: jingrow.throw("This method is only meant for developer mode") return get_boot() def get_boot(): return jingrow._dict( { "jingrow_version": jingrow.__version__, "default_route": get_default_route(), "site_name": jingrow.local.site, "read_only_mode": jingrow.flags.read_only, "csrf_token": jingrow.sessions.get_csrf_token(), "setup_complete": cint(jingrow.get_system_settings("setup_complete")), "sysdefaults": jingrow.defaults.get_defaults(), "is_demo_site": jingrow.conf.get("is_demo_site"), "is_fc_site": is_fc_site(), "timezone": { "system": get_system_timezone(), "user": jingrow.db.get_value("User", jingrow.session.user, "time_zone") or get_system_timezone(), }, } ) def get_default_route(): return "/crm" def run_git_command(command): try: with open(os.devnull, "wb") as null_stream: result = subprocess.check_output(command, shell=True, stdin=null_stream, stderr=null_stream) return safe_decode(result).strip() except Exception: jingrow.log_error( title="Git Command Error", ) return ""