mirror of
https://github.com/frappe/bench.git
synced 2024-11-11 15:51:03 +00:00
Added command to remove app
This commit is contained in:
parent
47a65b9411
commit
c3efdb01ab
28
bench/app.py
28
bench/app.py
@ -10,6 +10,8 @@ import json
|
|||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
import bench
|
import bench
|
||||||
|
import sys
|
||||||
|
import shutil
|
||||||
|
|
||||||
logging.basicConfig(level="DEBUG")
|
logging.basicConfig(level="DEBUG")
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -101,6 +103,32 @@ def install_app(app, bench_path='.', verbose=False):
|
|||||||
find_links=find_links))
|
find_links=find_links))
|
||||||
add_to_appstxt(app, bench_path=bench_path)
|
add_to_appstxt(app, bench_path=bench_path)
|
||||||
|
|
||||||
|
|
||||||
|
def remove_app(app, bench_path='.'):
|
||||||
|
if not app in get_apps():
|
||||||
|
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)
|
||||||
|
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_path)], cwd=bench_path)
|
||||||
|
remove_from_appstxt(app, bench_path)
|
||||||
|
shutil.rmtree(app_path)
|
||||||
|
run_frappe_cmd("build", cwd=bench_path)
|
||||||
|
if get_config(bench_path).get('restart_supervisor_on_update'):
|
||||||
|
restart_supervisor_processes(bench_path=bench_path)
|
||||||
|
|
||||||
|
|
||||||
def pull_all_apps(bench_path='.'):
|
def pull_all_apps(bench_path='.'):
|
||||||
rebase = '--rebase' if get_config(bench_path).get('rebase_on_pull') else ''
|
rebase = '--rebase' if get_config(bench_path).get('rebase_on_pull') else ''
|
||||||
|
|
||||||
|
3
bench/commands/__init__.py
Normal file → Executable file
3
bench/commands/__init__.py
Normal file → Executable file
@ -21,10 +21,11 @@ def bench_command(bench_path='.'):
|
|||||||
setup_logging(bench_path=bench_path)
|
setup_logging(bench_path=bench_path)
|
||||||
|
|
||||||
|
|
||||||
from bench.commands.make import init, get_app, new_app, new_site
|
from bench.commands.make import init, get_app, new_app, remove_app, new_site
|
||||||
bench_command.add_command(init)
|
bench_command.add_command(init)
|
||||||
bench_command.add_command(get_app)
|
bench_command.add_command(get_app)
|
||||||
bench_command.add_command(new_app)
|
bench_command.add_command(new_app)
|
||||||
|
bench_command.add_command(remove_app)
|
||||||
bench_command.add_command(new_site)
|
bench_command.add_command(new_site)
|
||||||
|
|
||||||
|
|
||||||
|
8
bench/commands/make.py
Normal file → Executable file
8
bench/commands/make.py
Normal file → Executable file
@ -36,6 +36,14 @@ def new_app(app_name):
|
|||||||
new_app(app_name)
|
new_app(app_name)
|
||||||
|
|
||||||
|
|
||||||
|
@click.command('remove-app')
|
||||||
|
@click.argument('app-name')
|
||||||
|
def remove_app(app_name):
|
||||||
|
"completely remove new app from bench"
|
||||||
|
from bench.app import remove_app
|
||||||
|
remove_app(app_name)
|
||||||
|
|
||||||
|
|
||||||
@click.command('new-site')
|
@click.command('new-site')
|
||||||
@click.option('--mariadb-root-password', help="MariaDB root password")
|
@click.option('--mariadb-root-password', help="MariaDB root password")
|
||||||
@click.option('--admin-password', help="admin password to set for site")
|
@click.option('--admin-password', help="admin password to set for site")
|
||||||
|
1
bench/utils.py
Normal file → Executable file
1
bench/utils.py
Normal file → Executable file
@ -77,6 +77,7 @@ def exec_cmd(cmd, cwd='.'):
|
|||||||
stderr = stdout = subprocess.PIPE
|
stderr = stdout = subprocess.PIPE
|
||||||
else:
|
else:
|
||||||
stderr = stdout = None
|
stderr = stdout = None
|
||||||
|
print cmd
|
||||||
p = subprocess.Popen(cmd, cwd=cwd, shell=True, stdout=stdout, stderr=stderr)
|
p = subprocess.Popen(cmd, cwd=cwd, shell=True, stdout=stdout, stderr=stderr)
|
||||||
|
|
||||||
if async:
|
if async:
|
||||||
|
Loading…
Reference in New Issue
Block a user