Fix script_paths(check_all=True) missing script paths

BLENDER_SYSTEM_SCRIPTS wasn't included in bpy.utils.script_paths()
This commit is contained in:
Campbell Barton 2016-05-14 03:25:06 +10:00
parent 89c6b58ef5
commit 24e887cd93
1 changed files with 14 additions and 8 deletions

View File

@ -305,15 +305,21 @@ def script_paths(subdir=None, user_pref=True, check_all=False):
"""
scripts = list(_scripts)
if check_all:
# all possible paths
base_paths = tuple(_os.path.join(resource_path(res), "scripts")
for res in ('LOCAL', 'USER', 'SYSTEM'))
else:
# only paths blender uses
base_paths = _bpy_script_paths()
# Only paths Blender uses.
#
# Needed this is needed even when 'check_all' is enabled,
# so the 'BLENDER_SYSTEM_SCRIPTS' environment variable will be used.
base_paths = _bpy_script_paths()
for path in base_paths + (script_path_user(), script_path_pref()):
if check_all:
# All possible paths, no duplicates, keep order.
base_paths = (
*(path for path in (_os.path.join(resource_path(res), "scripts")
for res in ('LOCAL', 'USER', 'SYSTEM')) if path not in base_paths),
*base_paths,
)
for path in (*base_paths, script_path_user(), script_path_pref()):
if path:
path = _os.path.normpath(path)
if path not in scripts and _os.path.isdir(path):