mirror of
https://github.com/frappe/bench.git
synced 2025-01-08 16:14:12 +00:00
[fix] update fails if no remote found
- The bench update used to fail if there was no remote found for the app. Fixed by adding check if remote exists. If it doesn't the app is added to excluded_apps.txt and not considered for an update - [minor] optimized get_excluded_apps list by calling it only once, as opposed to getting it for every app
This commit is contained in:
parent
168ea9a0b1
commit
2591da0622
16
bench/app.py
16
bench/app.py
@ -222,14 +222,19 @@ Here are your choices:
|
|||||||
wait for them to be merged in the core.'''.format(app))
|
wait for them to be merged in the core.'''.format(app))
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
excluded_apps = get_excluded_apps()
|
||||||
for app in get_apps(bench_path=bench_path):
|
for app in get_apps(bench_path=bench_path):
|
||||||
excluded_apps = get_excluded_apps()
|
|
||||||
if app in excluded_apps:
|
if app in excluded_apps:
|
||||||
print("Skipping pull for app {}".format(app))
|
print("Skipping pull for app {}".format(app))
|
||||||
continue
|
continue
|
||||||
app_dir = get_repo_dir(app, bench_path=bench_path)
|
app_dir = get_repo_dir(app, bench_path=bench_path)
|
||||||
if os.path.exists(os.path.join(app_dir, '.git')):
|
if os.path.exists(os.path.join(app_dir, '.git')):
|
||||||
remote = get_remote(app)
|
remote = get_remote(app)
|
||||||
|
if not remote:
|
||||||
|
# remote is False, i.e. remote doesn't exist, add the app to excluded_apps.txt
|
||||||
|
add_to_excluded_apps_txt(app, bench_path=bench_path)
|
||||||
|
print("Skipping pull for app {}, since remote doesn't exist, and adding it to excluded apps".format(app))
|
||||||
|
continue
|
||||||
logger.info('pulling {0}'.format(app))
|
logger.info('pulling {0}'.format(app))
|
||||||
if reset:
|
if reset:
|
||||||
exec_cmd("git fetch --all", cwd=app_dir)
|
exec_cmd("git fetch --all", cwd=app_dir)
|
||||||
@ -276,12 +281,13 @@ def get_remote(app, bench_path='.'):
|
|||||||
stderr=subprocess.STDOUT)
|
stderr=subprocess.STDOUT)
|
||||||
contents = contents.decode('utf-8')
|
contents = contents.decode('utf-8')
|
||||||
if re.findall('upstream[\s]+', contents):
|
if re.findall('upstream[\s]+', contents):
|
||||||
remote = 'upstream'
|
return 'upstream'
|
||||||
|
elif not contents:
|
||||||
|
# if contents is an empty string => remote doesn't exist
|
||||||
|
return False
|
||||||
else:
|
else:
|
||||||
# get the first remote
|
# get the first remote
|
||||||
remote = contents.splitlines()[0].split()[0]
|
return contents.splitlines()[0].split()[0]
|
||||||
|
|
||||||
return remote
|
|
||||||
|
|
||||||
def use_rq(bench_path):
|
def use_rq(bench_path):
|
||||||
bench_path = os.path.abspath(bench_path)
|
bench_path = os.path.abspath(bench_path)
|
||||||
|
Loading…
Reference in New Issue
Block a user