def remove_app(app, bench_path='.'): if app not in get_apps(bench_path): print("No app named {0}".format(app)) sys.exit(1) app_path = os.path.join(bench_path, 'apps', app) site_path = os.path.join(bench_path, 'sites') pip = os.path.join(bench_path, 'env', 'bin', 'pip') for site in os.listdir(site_path): req_file = os.path.join(site_path, site, 'site_config.json') if os.path.exists(req_file): out = subprocess.check_output( ["bench", "--site", site, "list-apps"], cwd=bench_path).decode('utf-8') if re.search(r'\b' + app + r'\b', out): print("Cannot remove, app is installed on site: {0}".format( site)) sys.exit(1) exec_cmd("{0} uninstall -y {1}".format(pip, app), cwd=bench_path) remove_from_appstxt(app, bench_path) shutil.rmtree(app_path) run_frappe_cmd("build", bench_path=bench_path) if get_config(bench_path).get('restart_supervisor_on_update'): restart_supervisor_processes(bench_path=bench_path) if get_config(bench_path).get('restart_systemd_on_update'): restart_systemd_processes(bench_path=bench_path)
def _update(pull=False, patch=False, build=False, update_bench=False, auto=False, restart_supervisor=False, requirements=False, no_backup=False, bench_path='.', force=False, reset=False): conf = get_config(bench_path=bench_path) version_upgrade = is_version_upgrade(bench_path=bench_path) if version_upgrade[0] or (not version_upgrade[0] and force): validate_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) before_update(bench_path=bench_path, requirements=requirements) if pull: pull_all_apps(bench_path=bench_path, reset=reset) if requirements: update_requirements(bench_path=bench_path) update_npm_packages(bench_path=bench_path) if version_upgrade[0] or (not version_upgrade[0] and force): pre_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) import bench.utils, bench.app print('Reloading bench...') reload(bench.utils) reload(bench.app) if patch: if not no_backup: print('Backing up sites...') backup_all_sites(bench_path=bench_path) print('Patching sites...') patch_sites(bench_path=bench_path) if build: build_assets(bench_path=bench_path) if version_upgrade[0] or (not version_upgrade[0] and force): post_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) if restart_supervisor or conf.get('restart_supervisor_on_update'): restart_supervisor_processes(bench_path=bench_path) print("_" * 80) print( "Bench: Deployment tool for Frappe and ERPNext (https://erpnext.org).") print( "Open source depends on your contributions, so please contribute bug reports, patches, fixes or cash and be a part of the community" ) print()
def install_app(app, bench_path=".", verbose=False, no_cache=False, restart_bench=True, skip_assets=False): print('\n{0}Installing {1}{2}'.format(color.yellow, app, color.nc)) logger.log("installing {}".format(app)) pip_path = os.path.join(bench_path, "env", "bin", "pip") quiet_flag = "-q" if not verbose else "" app_path = os.path.join(bench_path, "apps", app) cache_flag = "--no-cache-dir" if no_cache else "" exec_cmd("{pip} install {quiet} -U -e {app} {no_cache}".format( pip=pip_path, quiet=quiet_flag, app=app_path, no_cache=cache_flag)) if os.path.exists(os.path.join(app_path, 'package.json')): exec_cmd("yarn install", cwd=app_path) add_to_appstxt(app, bench_path=bench_path) if not skip_assets: build_assets(bench_path=bench_path, app=app) if restart_bench: conf = get_config(bench_path=bench_path) if conf.get('restart_supervisor_on_update'): restart_supervisor_processes(bench_path=bench_path) if conf.get('restart_systemd_on_update'): restart_systemd_processes(bench_path=bench_path)
def restart(web, supervisor, systemd): from bench.utils import restart_supervisor_processes, restart_systemd_processes from bench.config.common_site_config import get_config if get_config('.').get('restart_supervisor_on_update') or supervisor: restart_supervisor_processes(bench_path='.', web_workers=web) if get_config('.').get('restart_systemd_on_update') or systemd: restart_systemd_processes(bench_path='.', web_workers=web)
def _update(pull=False, patch=False, build=False, update_bench=False, auto=False, restart_supervisor=False, requirements=False, no_backup=False, upgrade=False, bench_path='.', force=False, reset=False, force_frappe=False, force_erpnext=False, force_frappe_erpnext=False): conf = get_config(bench_path=bench_path) version_upgrade = is_version_upgrade(bench_path=bench_path) # if version_upgrade[0] and not upgrade: # raise Exception("Major Version Upgrade") # # if upgrade and (version_upgrade[0] or (not version_upgrade[0] and force)): # validate_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) before_update(bench_path=bench_path, requirements=requirements) if pull: pull_all_apps(bench_path=bench_path, reset=reset, force_frappe=force_frappe, force_erpnext=force_erpnext, force_frappe_erpnext=force_frappe_erpnext) # if requirements: # update_requirements(bench_path=bench_path) if upgrade and (version_upgrade[0] or (not version_upgrade[0] and force)): pre_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) import bench.utils, bench.app reload(bench.utils) reload(bench.app) if patch: if not no_backup: backup_all_sites(bench_path=bench_path) patch_sites(bench_path=bench_path) if build: build_assets(bench_path=bench_path) if upgrade and (version_upgrade[0] or (not version_upgrade[0] and force)): post_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) if restart_supervisor or conf.get('restart_supervisor_on_update'): restart_supervisor_processes(bench_path=bench_path) print "_" * 80 print "Bench: Open source installer + admin for Frappe and ERPNext (https://erpnext.com)" print
def install_app(app, bench_path=".", verbose=False, no_cache=False, postprocess=True, skip_assets=False): logger.info("installing {}".format(app)) pip_path = os.path.join(bench_path, "env", "bin", "pip") quiet_flag = "-q" if not verbose else "" app_path = os.path.join(bench_path, "apps", app) cache_flag = "--no-cache-dir" if no_cache else "" exec_cmd("{pip} install {quiet} -U -e {app} {no_cache}".format( pip=pip_path, quiet=quiet_flag, app=app_path, no_cache=cache_flag)) add_to_appstxt(app, bench_path=bench_path) if postprocess: if not skip_assets: build_assets(bench_path=bench_path, app=app) conf = get_config(bench_path=bench_path) if conf.get('restart_supervisor_on_update'): restart_supervisor_processes(bench_path=bench_path) if conf.get('restart_systemd_on_update'): restart_systemd_processes(bench_path=bench_path)
def restart(web, supervisor, systemd): "Restart supervisor processes or systemd units" from bench.utils import restart_supervisor_processes, restart_systemd_processes from bench.config.common_site_config import get_config if get_config('.').get('restart_supervisor_on_update') or supervisor: restart_supervisor_processes(bench_path='.', web_workers=web) if get_config('.').get('restart_systemd_on_update') or systemd: restart_systemd_processes(bench_path='.', web_workers=web)
def _update(pull=False, patch=False, build=False, update_bench=False, auto=False, restart_supervisor=False, restart_systemd=False, requirements=False, no_backup=False, bench_path='.', force=False, reset=False): conf = get_config(bench_path=bench_path) version_upgrade = is_version_upgrade(bench_path=bench_path) if version_upgrade[0] or (not version_upgrade[0] and force): validate_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) before_update(bench_path=bench_path, requirements=requirements) if pull: pull_all_apps(bench_path=bench_path, reset=reset) if requirements: update_requirements(bench_path=bench_path) update_node_packages(bench_path=bench_path) if version_upgrade[0] or (not version_upgrade[0] and force): pre_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) import bench.utils, bench.app print('Reloading bench...') if sys.version_info >= (3, 4): import importlib importlib.reload(bench.utils) importlib.reload(bench.app) else: reload(bench.utils) reload(bench.app) if patch: if not no_backup: print('Backing up sites...') backup_all_sites(bench_path=bench_path) print('Patching sites...') patch_sites(bench_path=bench_path) if build: build_assets(bench_path=bench_path) if version_upgrade[0] or (not version_upgrade[0] and force): post_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) if restart_supervisor or conf.get('restart_supervisor_on_update'): restart_supervisor_processes(bench_path=bench_path) if restart_systemd or conf.get('restart_systemd_on_update'): restart_systemd_processes(bench_path=bench_path) print("_"*80) print("Bench: Deployment tool for Frappe and ERPNext (https://erpnext.org).") print("Open source depends on your contributions, so please contribute bug reports, patches, fixes or cash and be a part of the community") print()
def _update(pull=False, patch=False, build=False, update_bench=False, auto=False, restart_supervisor=False, requirements=False, no_backup=False, upgrade=False, bench_path='.', force=False, reset=False): conf = get_config(bench_path=bench_path) version_upgrade = is_version_upgrade(bench_path=bench_path) if version_upgrade[0] and not upgrade: raise Exception("Major Version Upgrade") if upgrade and (version_upgrade[0] or (not version_upgrade[0] and force)): validate_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) before_update(bench_path=bench_path, requirements=requirements) if pull: pull_all_apps(bench_path=bench_path, reset=reset) if requirements: print 'Updating Python libraries...' update_requirements(bench_path=bench_path) if upgrade and (version_upgrade[0] or (not version_upgrade[0] and force)): pre_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) import bench.utils, bench.app print 'Reloading bench...' reload(bench.utils) reload(bench.app) if patch: if not no_backup: print 'Backing up sites...' backup_all_sites(bench_path=bench_path) print 'Patching sites...' patch_sites(bench_path=bench_path) if build: build_assets(bench_path=bench_path) if upgrade and (version_upgrade[0] or (not version_upgrade[0] and force)): post_upgrade(version_upgrade[1], version_upgrade[2], bench_path=bench_path) if restart_supervisor or conf.get('restart_supervisor_on_update'): restart_supervisor_processes(bench_path=bench_path) print "_"*80 print "Bench: Deployment tool for Frappe and ERPNext (https://erpnext.org)." print "Open source depends on your contributions, so please contribute bug reports, patches, fixes or cash and be a part of the community" print
def _update(pull=False, patch=False, build=False, bench=False, auto=False, restart_supervisor=False, requirements=False, no_backup=False, upgrade=False, bench_path='.', force=False): conf = get_config(bench=bench_path) version_upgrade = is_version_upgrade(bench=bench_path) if version_upgrade[0] and not upgrade: raise Exception("Major Version Upgrade") if upgrade and (version_upgrade[0] or (not version_upgrade[0] and force)): validate_upgrade(version_upgrade[1], version_upgrade[2], bench=bench_path) before_update(bench=bench_path, requirements=requirements) if pull: pull_all_apps(bench=bench_path) if requirements: update_requirements(bench=bench_path) if upgrade and (version_upgrade[0] or (not version_upgrade[0] and force)): pre_upgrade(version_upgrade[1], version_upgrade[2], bench=bench_path) import utils, app reload(utils) reload(app) if patch: if not no_backup: backup_all_sites(bench=bench_path) patch_sites(bench=bench_path) if build: build_assets(bench=bench_path) if upgrade and (version_upgrade[0] or (not version_upgrade[0] and force)): post_upgrade(version_upgrade[1], version_upgrade[2], bench=bench_path) if restart_supervisor or conf.get('restart_supervisor_on_update'): restart_supervisor_processes(bench=bench_path) print "_"*80 print "Bench: Open source installer + admin for Frappe and ERPNext (https://erpnext.com)" print
def restart(): "Restart supervisor processes" from bench.utils import restart_supervisor_processes restart_supervisor_processes()
def restart(): "Restart supervisor processes" from bench.utils import restart_supervisor_processes restart_supervisor_processes()
def restart(web): "Restart supervisor processes" from bench.utils import restart_supervisor_processes restart_supervisor_processes(bench_path='.', web_workers=web)
def restart(web): "Restart supervisor processes" from bench.utils import restart_supervisor_processes restart_supervisor_processes(bench_path='.', web_workers=web)