|
@@ -13,6 +13,7 @@ import argparse
|
|
|
import json
|
|
|
import hashlib
|
|
|
import logging
|
|
|
+import pathlib
|
|
|
import sys
|
|
|
import urllib.parse
|
|
|
|
|
@@ -21,219 +22,251 @@ from o3de import manifest, validation
|
|
|
logger = logging.getLogger()
|
|
|
logging.basicConfig()
|
|
|
|
|
|
-def print_this_engine(verbose: int) -> None:
|
|
|
+
|
|
|
+def get_project_path(project_path: pathlib.Path, project_name: str) -> pathlib.Path:
|
|
|
+ if not project_name and not project_path:
|
|
|
+ logger.error(f'Must either specify a Project path or Project Name.')
|
|
|
+ return None
|
|
|
+
|
|
|
+ if not project_path:
|
|
|
+ project_path = manifest.get_registered(project_name=project_name)
|
|
|
+ if not project_path:
|
|
|
+ logger.error(f'Unable to locate project path from the registered manifest json files:'
|
|
|
+ f' {str(pathlib.Path("~/.o3de/o3de_manifest.json").expanduser())}, engine.json')
|
|
|
+ return None
|
|
|
+
|
|
|
+ if not project_path.is_dir():
|
|
|
+ logger.error(f'Project path {project_path} is not a folder.')
|
|
|
+ return None
|
|
|
+
|
|
|
+ return project_path
|
|
|
+
|
|
|
+
|
|
|
+def print_this_engine(verbose: int) -> int:
|
|
|
engine_data = manifest.get_this_engine()
|
|
|
print(json.dumps(engine_data, indent=4))
|
|
|
+ result = True
|
|
|
if verbose > 0:
|
|
|
- print_engines_data(engine_data)
|
|
|
+ result = print_manifest_json_data(engine_data, 'engine.json', 'This Engine',
|
|
|
+ manifest.get_engine_json_data, 'engine_path')
|
|
|
+ return 0 if result else 1
|
|
|
|
|
|
|
|
|
def print_engines(verbose: int) -> None:
|
|
|
engines_data = manifest.get_engines()
|
|
|
print(json.dumps(engines_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_engines_data(engines_data)
|
|
|
+ return print_manifest_json_data(engines_data, 'engine.json', 'Engines',
|
|
|
+ manifest.get_engine_json_data, 'engine_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_projects(verbose: int) -> None:
|
|
|
+def print_projects(verbose: int) -> int:
|
|
|
projects_data = manifest.get_projects()
|
|
|
print(json.dumps(projects_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_projects_data(projects_data)
|
|
|
+ return print_manifest_json_data(projects_data, 'project.json', 'Projects',
|
|
|
+ manifest.get_project_json_data, 'project_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_gems(verbose: int) -> None:
|
|
|
+def print_gems(verbose: int) -> int:
|
|
|
gems_data = manifest.get_gems()
|
|
|
print(json.dumps(gems_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_gems_data(gems_data)
|
|
|
+ return print_manifest_json_data(gems_data, 'gem.json', 'Gems',
|
|
|
+ manifest.get_gem_json_data, 'gem_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_templates(verbose: int) -> None:
|
|
|
+def print_templates(verbose: int) -> int:
|
|
|
templates_data = manifest.get_templates()
|
|
|
print(json.dumps(templates_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_templates_data(templates_data)
|
|
|
+ return print_manifest_json_data(templates_data, 'template.json', 'Templates',
|
|
|
+ manifest.get_template_json_data, 'template_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_restricted(verbose: int) -> None:
|
|
|
+def print_restricted(verbose: int) -> int:
|
|
|
restricted_data = manifest.get_restricted()
|
|
|
print(json.dumps(restricted_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_restricted_data(restricted_data)
|
|
|
+ return print_manifest_json_data(restricted_data, 'restricted.json', 'Restricted',
|
|
|
+ manifest.get_restricted_json_data, 'restricted_path')
|
|
|
+ return 0
|
|
|
+
|
|
|
|
|
|
-def print_engine_projects(verbose: int) -> None:
|
|
|
+# Engine output methods
|
|
|
+def print_engine_projects(verbose: int) -> int:
|
|
|
engine_projects_data = manifest.get_engine_projects()
|
|
|
print(json.dumps(engine_projects_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_projects_data(engine_projects_data)
|
|
|
+ return print_manifest_json_data(engine_projects_data, 'project.json', 'Projects',
|
|
|
+ manifest.get_project_json_data, 'project_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_engine_gems(verbose: int) -> None:
|
|
|
+def print_engine_gems(verbose: int) -> int:
|
|
|
engine_gems_data = manifest.get_engine_gems()
|
|
|
print(json.dumps(engine_gems_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_gems_data(engine_gems_data)
|
|
|
+ return print_manifest_json_data(engine_gems_data, 'gem.json', 'Gems',
|
|
|
+ manifest.get_gem_json_data, 'gem_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_engine_templates(verbose: int) -> None:
|
|
|
+def print_engine_templates(verbose: int) -> int:
|
|
|
engine_templates_data = manifest.get_engine_templates()
|
|
|
print(json.dumps(engine_templates_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_templates_data(engine_templates_data)
|
|
|
+ return print_manifest_json_data(engine_templates_data, 'template.json', 'Templates',
|
|
|
+ manifest.get_template_json_data, 'template_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_engine_restricted(verbose: int) -> None:
|
|
|
+def print_engine_restricted(verbose: int) -> int:
|
|
|
engine_restricted_data = manifest.get_engine_restricted()
|
|
|
print(json.dumps(engine_restricted_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_restricted_data(engine_restricted_data)
|
|
|
+ return print_manifest_json_data(engine_restricted_data, 'restricted.json', 'Restricted',
|
|
|
+ manifest.get_restricted_json_data, 'restricted_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_engine_external_subdirectories(verbose: int) -> None:
|
|
|
+def print_engine_external_subdirectories() -> int:
|
|
|
external_subdirs_data = manifest.get_engine_external_subdirectories()
|
|
|
print(json.dumps(external_subdirs_data, indent=4))
|
|
|
+ return 0
|
|
|
+
|
|
|
+
|
|
|
+# Project output methods
|
|
|
+def print_project_gems(verbose: int, project_path: pathlib.Path, project_name: str) -> int:
|
|
|
+ project_path = get_project_path(project_path, project_name)
|
|
|
+ if not project_path:
|
|
|
+ return 1
|
|
|
+
|
|
|
+ project_gems_data = manifest.get_project_gems(project_path)
|
|
|
+ print(json.dumps(project_gems_data, indent=4))
|
|
|
+
|
|
|
+ if verbose > 0:
|
|
|
+ return print_manifest_json_data(project_gems_data, 'gem.json', 'Gems',
|
|
|
+ manifest.get_gem_json_data, 'gem_path')
|
|
|
+ return 0
|
|
|
+
|
|
|
+
|
|
|
+def print_project_external_subdirectories(project_path: pathlib.Path, project_name: str) -> int:
|
|
|
+ project_path = get_project_path(project_path, project_name)
|
|
|
+ if not project_path:
|
|
|
+ return 1
|
|
|
+
|
|
|
+ external_subdirs_data = manifest.get_project_external_subdirectories(project_path)
|
|
|
+ print(json.dumps(external_subdirs_data, indent=4))
|
|
|
+ return 0
|
|
|
+
|
|
|
+
|
|
|
+def print_project_templates(verbose: int, project_path: pathlib.Path, project_name: str) -> int:
|
|
|
+ project_path = get_project_path(project_path, project_name)
|
|
|
+ if not project_path:
|
|
|
+ return 1
|
|
|
+
|
|
|
+ project_templates_data = manifest.get_project_templates(project_path)
|
|
|
+ print(json.dumps(project_templates_data, indent=4))
|
|
|
+ if verbose > 0:
|
|
|
+ return print_manifest_json_data(project_templates_data, 'template.json', 'Templates',
|
|
|
+ manifest.get_template_json_data, 'template_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_all_projects(verbose: int) -> None:
|
|
|
+def print_project_restricted(verbose: int, project_path: pathlib.Path, project_name: str) -> int:
|
|
|
+ project_path = get_project_path(project_path, project_name)
|
|
|
+ if not project_path:
|
|
|
+ return 1
|
|
|
+
|
|
|
+ project_restricted_data = manifest.get_project_restricted(project_path)
|
|
|
+ print(json.dumps(project_restricted_data, indent=4))
|
|
|
+ if verbose > 0:
|
|
|
+ return print_manifest_json_data(project_restricted_data, 'restricted.json', 'Restricted',
|
|
|
+ manifest.get_restricted_json_data, 'restricted_path')
|
|
|
+ return 0
|
|
|
+
|
|
|
+
|
|
|
+def print_all_projects(verbose: int) -> int:
|
|
|
all_projects_data = manifest.get_all_projects()
|
|
|
print(json.dumps(all_projects_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_projects_data(all_projects_data)
|
|
|
+ return print_manifest_json_data(all_projects_data, 'project.json', 'Projects',
|
|
|
+ manifest.get_project_json_data, 'project_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_all_gems(verbose: int) -> None:
|
|
|
+def print_all_gems(verbose: int) -> int:
|
|
|
all_gems_data = manifest.get_all_gems()
|
|
|
print(json.dumps(all_gems_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_gems_data(all_gems_data)
|
|
|
+ return print_manifest_json_data(all_gems_data, 'gem.json', 'Gems',
|
|
|
+ manifest.get_gem_json_data, 'gem_path')
|
|
|
+ return 0
|
|
|
+
|
|
|
|
|
|
+def print_all_external_subdirectories() -> int:
|
|
|
+ all_external_subdirectories_data = manifest.get_all_external_subdirectories()
|
|
|
+ print(json.dumps(all_external_subdirectories_data, indent=4))
|
|
|
+ return 0
|
|
|
|
|
|
-def print_all_templates(verbose: int) -> None:
|
|
|
+def print_all_templates(verbose: int) -> int:
|
|
|
all_templates_data = manifest.get_all_templates()
|
|
|
print(json.dumps(all_templates_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_templates_data(all_templates_data)
|
|
|
+ return print_manifest_json_data(all_templates_data, 'template.json', 'Templates',
|
|
|
+ manifest.get_template_json_data, 'template_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_all_restricted(verbose: int) -> None:
|
|
|
+def print_all_restricted(verbose: int) -> int:
|
|
|
all_restricted_data = manifest.get_all_restricted()
|
|
|
print(json.dumps(all_restricted_data, indent=4))
|
|
|
- if verbose > 0:
|
|
|
- print_restricted_data(all_restricted_data)
|
|
|
|
|
|
-
|
|
|
-def print_engines_data(engines_data: dict) -> None:
|
|
|
- print('\n')
|
|
|
- print("Engines================================================")
|
|
|
- for engine_object in engines_data:
|
|
|
- # if it's not local it should be in the cache
|
|
|
- engine_uri = engine_object['path']
|
|
|
- parsed_uri = urllib.parse.urlparse(engine_uri)
|
|
|
- if parsed_uri.scheme == 'http' or \
|
|
|
- parsed_uri.scheme == 'https' or \
|
|
|
- parsed_uri.scheme == 'ftp' or \
|
|
|
- parsed_uri.scheme == 'ftps':
|
|
|
- repo_sha256 = hashlib.sha256(engine_uri.encode())
|
|
|
- cache_folder = manifest.get_o3de_cache_folder()
|
|
|
- engine = cache_folder / str(repo_sha256.hexdigest() + '.json')
|
|
|
- print(f'{engine_uri}/engine.json cached as:')
|
|
|
- else:
|
|
|
- engine_json = pathlib.Path(engine_uri).resolve() / 'engine.json'
|
|
|
-
|
|
|
- with engine_json.open('r') as f:
|
|
|
- try:
|
|
|
- engine_json_data = json.load(f)
|
|
|
- except json.JSONDecodeError as e:
|
|
|
- logger.warn(f'{engine_json} failed to load: {str(e)}')
|
|
|
- else:
|
|
|
- print(engine_json)
|
|
|
- print(json.dumps(engine_json_data, indent=4))
|
|
|
- print('\n')
|
|
|
-
|
|
|
-
|
|
|
-def print_projects_data(projects_data: dict) -> None:
|
|
|
- print('\n')
|
|
|
- print("Projects================================================")
|
|
|
- for project_uri in projects_data:
|
|
|
- # if it's not local it should be in the cache
|
|
|
- parsed_uri = urllib.parse.urlparse(project_uri)
|
|
|
- if parsed_uri.scheme == 'http' or \
|
|
|
- parsed_uri.scheme == 'https' or \
|
|
|
- parsed_uri.scheme == 'ftp' or \
|
|
|
- parsed_uri.scheme == 'ftps':
|
|
|
- repo_sha256 = hashlib.sha256(project_uri.encode())
|
|
|
- cache_folder = manifest.get_o3de_cache_folder()
|
|
|
- project_json = cache_folder / str(repo_sha256.hexdigest() + '.json')
|
|
|
- else:
|
|
|
- project_json = pathlib.Path(project_uri).resolve() / 'project.json'
|
|
|
-
|
|
|
- with project_json.open('r') as f:
|
|
|
- try:
|
|
|
- project_json_data = json.load(f)
|
|
|
- except json.JSONDecodeError as e:
|
|
|
- logger.warn(f'{project_json} failed to load: {str(e)}')
|
|
|
- else:
|
|
|
- print(project_json)
|
|
|
- print(json.dumps(project_json_data, indent=4))
|
|
|
- print('\n')
|
|
|
+ if verbose > 0:
|
|
|
+ return print_manifest_json_data(all_restricted_data, 'restricted.json', 'Restricted',
|
|
|
+ manifest.get_restricted_json_data, 'restricted_path')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_gems_data(gems_data: dict) -> None:
|
|
|
+def print_manifest_json_data(uri_json_data: dict, json_filename: str,
|
|
|
+ print_prefix: str, get_json_func: callable, get_json_data_kw: str) -> int:
|
|
|
print('\n')
|
|
|
- print("Gems================================================")
|
|
|
- for gem_uri in gems_data:
|
|
|
+ print(f"{print_prefix}================================================")
|
|
|
+ for manifest_uri in uri_json_data:
|
|
|
# if it's not local it should be in the cache
|
|
|
- parsed_uri = urllib.parse.urlparse(gem_uri)
|
|
|
- if parsed_uri.scheme == 'http' or \
|
|
|
- parsed_uri.scheme == 'https' or \
|
|
|
- parsed_uri.scheme == 'ftp' or \
|
|
|
- parsed_uri.scheme == 'ftps':
|
|
|
- repo_sha256 = hashlib.sha256(gem_uri.encode())
|
|
|
+ parsed_uri = urllib.parse.urlparse(manifest_uri)
|
|
|
+ if parsed_uri.scheme in ['http', 'https', 'ftp', 'ftps']:
|
|
|
+ repo_sha256 = hashlib.sha256(manifest_uri.encode())
|
|
|
cache_folder = manifest.get_o3de_cache_folder()
|
|
|
- gem_json = cache_folder / str(repo_sha256.hexdigest() + '.json')
|
|
|
+ manifest_json_path = cache_folder / str(repo_sha256.hexdigest() + '.json')
|
|
|
else:
|
|
|
- gem_json = pathlib.Path(gem_uri).resolve() / 'gem.json'
|
|
|
-
|
|
|
- with gem_json.open('r') as f:
|
|
|
- try:
|
|
|
- gem_json_data = json.load(f)
|
|
|
- except json.JSONDecodeError as e:
|
|
|
- logger.warn(f'{gem_json} failed to load: {str(e)}')
|
|
|
- else:
|
|
|
- print(gem_json)
|
|
|
- print(json.dumps(gem_json_data, indent=4))
|
|
|
- print('\n')
|
|
|
+ manifest_json_path = pathlib.Path(manifest_uri).resolve() / json_filename
|
|
|
|
|
|
-
|
|
|
-def print_templates_data(templates_data: dict) -> None:
|
|
|
- print('\n')
|
|
|
- print("Templates================================================")
|
|
|
- for template_uri in templates_data:
|
|
|
- # if it's not local it should be in the cache
|
|
|
- parsed_uri = urllib.parse.urlparse(template_uri)
|
|
|
- if parsed_uri.scheme == 'http' or \
|
|
|
- parsed_uri.scheme == 'https' or \
|
|
|
- parsed_uri.scheme == 'ftp' or \
|
|
|
- parsed_uri.scheme == 'ftps':
|
|
|
- repo_sha256 = hashlib.sha256(template_uri.encode())
|
|
|
- cache_folder = manifest.get_o3de_cache_folder()
|
|
|
- template_json = cache_folder / str(repo_sha256.hexdigest() + '.json')
|
|
|
- else:
|
|
|
- template_json = pathlib.Path(template_uri).resolve() / 'template.json'
|
|
|
-
|
|
|
- with template_json.open('r') as f:
|
|
|
- try:
|
|
|
- template_json_data = json.load(f)
|
|
|
- except json.JSONDecodeError as e:
|
|
|
- logger.warn(f'{template_json} failed to load: {str(e)}')
|
|
|
- else:
|
|
|
- print(template_json)
|
|
|
- print(json.dumps(template_json_data, indent=4))
|
|
|
- print('\n')
|
|
|
+ json_data = get_json_func(**{get_json_data_kwargs: manifest_json_path})
|
|
|
+ if json_data:
|
|
|
+ print(manifest_json_path)
|
|
|
+ print(json.dumps(json_data, indent=4) + '\n')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
-def print_repos_data(repos_data: dict) -> None:
|
|
|
+def print_repos_data(repos_data: dict) -> int:
|
|
|
print('\n')
|
|
|
print("Repos================================================")
|
|
|
cache_folder = manifest.get_o3de_cache_folder()
|
|
@@ -251,29 +284,16 @@ def print_repos_data(repos_data: dict) -> None:
|
|
|
print(cache_file)
|
|
|
print(json.dumps(repo_json_data, indent=4))
|
|
|
print('\n')
|
|
|
-
|
|
|
-
|
|
|
-def print_restricted_data(restricted_data: dict) -> None:
|
|
|
- print('\n')
|
|
|
- print("Restricted================================================")
|
|
|
- for restricted_path in restricted_data:
|
|
|
- restricted_json = pathlib.Path(restricted_path).resolve() / 'restricted.json'
|
|
|
- with restricted_json.open('r') as f:
|
|
|
- try:
|
|
|
- restricted_json_data = json.load(f)
|
|
|
- except json.JSONDecodeError as e:
|
|
|
- logger.warn(f'{restricted_json} failed to load: {str(e)}')
|
|
|
- else:
|
|
|
- print(restricted_json)
|
|
|
- print(json.dumps(restricted_json_data, indent=4))
|
|
|
- print('\n')
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
def register_show_repos(verbose: int) -> None:
|
|
|
- repos_data = get_repos()
|
|
|
+ repos_data = manifest.get_repos()
|
|
|
print(json.dumps(repos_data, indent=4))
|
|
|
+
|
|
|
if verbose > 0:
|
|
|
- print_repos_data(repos_data)
|
|
|
+ return print_repos_data(repos_data) == 0
|
|
|
+ return 0
|
|
|
|
|
|
|
|
|
def register_show(verbose: int) -> None:
|
|
@@ -281,13 +301,15 @@ def register_show(verbose: int) -> None:
|
|
|
print(f"{manifest.get_o3de_manifest()}:")
|
|
|
print(json.dumps(json_data, indent=4))
|
|
|
|
|
|
+ result = True
|
|
|
if verbose > 0:
|
|
|
- print_engines_data(manifest.get_engines())
|
|
|
- print_projects_data(manifest.get_all_projects())
|
|
|
- print_gems_data(manifest.get_gems())
|
|
|
- print_templates_data(manifest.get_all_templates())
|
|
|
- print_restricted_data(manifest.get_all_restricted())
|
|
|
- print_repos_data(manifest.get_repos())
|
|
|
+ result = print_manifest_json_data(manifest.get_engines()) == 0 and result
|
|
|
+ result = print_manifest_json_data(manifest.get_all_projects()) == 0 and result
|
|
|
+ result = print_manifest_json_data(manifest.get_gems()) == 0 and result
|
|
|
+ result = print_manifest_json_data(manifest.get_all_templates()) == 0 and result
|
|
|
+ result = print_manifest_json_data(manifest.get_all_restricted()) == 0 and result
|
|
|
+ result = print_repos_data(manifest.get_repos()) == 0 and result
|
|
|
+ return 0 if result else 1
|
|
|
|
|
|
|
|
|
def _run_register_show(args: argparse) -> int:
|
|
@@ -295,75 +317,53 @@ def _run_register_show(args: argparse) -> int:
|
|
|
manifest.override_home_folder = args.override_home_folder
|
|
|
|
|
|
if args.this_engine:
|
|
|
- print_this_engine(args.verbose)
|
|
|
- return 0
|
|
|
-
|
|
|
+ return print_this_engine(args.verbose)
|
|
|
elif args.engines:
|
|
|
- print_engines(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_engines(args.verbose)
|
|
|
elif args.projects:
|
|
|
- print_projects(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_projects(args.verbose)
|
|
|
elif args.gems:
|
|
|
- print_gems(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_gems(args.verbose)
|
|
|
elif args.templates:
|
|
|
- print_templates(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_templates(args.verbose)
|
|
|
elif args.repos:
|
|
|
- register_show_repos(args.verbose)
|
|
|
- return 0
|
|
|
+ return register_show_repos(args.verbose)
|
|
|
elif args.restricted:
|
|
|
- print_restricted(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_restricted(args.verbose)
|
|
|
|
|
|
elif args.engine_projects:
|
|
|
- print_engine_projects(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_engine_projects(args.verbose)
|
|
|
elif args.engine_gems:
|
|
|
- print_engine_gems(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_engine_gems(args.verbose)
|
|
|
+ elif args.engine_external_subdirectories:
|
|
|
+ return print_engine_external_subdirectories()
|
|
|
elif args.engine_templates:
|
|
|
- print_engine_templates(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_engine_templates(args.verbose)
|
|
|
elif args.engine_restricted:
|
|
|
- print_engine_restricted(args.verbose)
|
|
|
- return 0
|
|
|
- elif args.engine_external_subdirectories:
|
|
|
- print_engine_external_subdirectories(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_engine_restricted(args.verbose)
|
|
|
+
|
|
|
+ elif args.project_gems:
|
|
|
+ return print_project_gems(args.verbose, args.project_path, args.project_name)
|
|
|
+ elif args.project_external_subdirectories:
|
|
|
+ return print_project_external_subdirectories(args.project_path, args.project_name)
|
|
|
+ elif args.project_templates:
|
|
|
+ return print_project_templates(args.verbose, args.project_path, args.project_name)
|
|
|
+ elif args.project_restricted:
|
|
|
+ return print_project_restricted(args.verbose, args.project_path, args.project_name)
|
|
|
|
|
|
elif args.all_projects:
|
|
|
- print_all_projects(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_all_projects(args.verbose)
|
|
|
elif args.all_gems:
|
|
|
- print_all_gems(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_all_gems(args.verbose)
|
|
|
+ elif args.all_external_subdirectories:
|
|
|
+ return print_all_external_subdirectories()
|
|
|
elif args.all_templates:
|
|
|
- print_all_templates(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_all_templates(args.verbose)
|
|
|
elif args.all_restricted:
|
|
|
- print_all_restricted(args.verbose)
|
|
|
- return 0
|
|
|
-
|
|
|
- elif args.downloadables:
|
|
|
- print_downloadables(args.verbose)
|
|
|
- return 0
|
|
|
- if args.downloadable_engines:
|
|
|
- print_downloadable_engines(args.verbose)
|
|
|
- return 0
|
|
|
- elif args.downloadable_projects:
|
|
|
- print_downloadable_projects(args.verbose)
|
|
|
- return 0
|
|
|
- elif args.downloadable_gems:
|
|
|
- print_downloadable_gems(args.verbose)
|
|
|
- return 0
|
|
|
- elif args.downloadable_templates:
|
|
|
- print_downloadable_templates(args.verbose)
|
|
|
- return 0
|
|
|
+ return print_all_restricted(args.verbose)
|
|
|
+
|
|
|
else:
|
|
|
- register_show(args.verbose)
|
|
|
- return 0
|
|
|
+ return register_show(args.verbose)
|
|
|
|
|
|
|
|
|
def add_parser_args(parser):
|
|
@@ -376,78 +376,84 @@ def add_parser_args(parser):
|
|
|
group = parser.add_mutually_exclusive_group(required=False)
|
|
|
group.add_argument('-te', '--this-engine', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Just the local engines.')
|
|
|
+ help='Output the current engine path.')
|
|
|
|
|
|
group.add_argument('-e', '--engines', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Just the local engines.')
|
|
|
+ help='Output the engines registered in the global ~/.o3de/o3de_manifest.json.')
|
|
|
group.add_argument('-p', '--projects', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Just the local projects.')
|
|
|
+ help='Output the projects registered in the global ~/.o3de/o3de_manifest.json.')
|
|
|
group.add_argument('-g', '--gems', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Just the local gems.')
|
|
|
+ help='Output the gems registered in the global ~/.o3de/o3de_manifest.json.')
|
|
|
group.add_argument('-t', '--templates', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Just the local templates.')
|
|
|
+ help='Output the templates registered in the global ~/.o3de/o3de_manifest.json.')
|
|
|
group.add_argument('-r', '--repos', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Just the local repos. Ignores repos.')
|
|
|
+ help='Output the repos registered in the global ~/.o3de/o3de_manifest.json. Ignores repos.')
|
|
|
group.add_argument('-rs', '--restricted', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='The local restricted folders.')
|
|
|
+ help='Output the restricted directories registered in the global ~/.o3de/o3de_manifest.json.')
|
|
|
|
|
|
group.add_argument('-ep', '--engine-projects', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Just the local projects. Ignores repos.')
|
|
|
+ help='Output the projects registered in the current engine engine.json. Ignores repos.')
|
|
|
group.add_argument('-eg', '--engine-gems', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Just the local gems. Ignores repos')
|
|
|
+ help='Output the gems registered in the current engine engine.json. Ignores repos')
|
|
|
group.add_argument('-et', '--engine-templates', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Just the local templates. Ignores repos.')
|
|
|
+ help='Output the templates registered in the current engine engine.json. Ignores repos.')
|
|
|
group.add_argument('-ers', '--engine-restricted', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='The restricted folders.')
|
|
|
- group.add_argument('-x', '--engine-external-subdirectories', action='store_true', required=False,
|
|
|
+ help='Output the restricted directories registered in the current engine engine.json.')
|
|
|
+ group.add_argument('-ees', '--engine-external-subdirectories', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='The external subdirectories.')
|
|
|
+ help='Output the external subdirectories registered in the current engine engine.json.')
|
|
|
|
|
|
- group.add_argument('-ap', '--all-projects', action='store_true', required=False,
|
|
|
+ group.add_argument('-pg', '--project-gems', action='store_true',
|
|
|
default=False,
|
|
|
- help='Just the local projects. Ignores repos.')
|
|
|
- group.add_argument('-ag', '--all-gems', action='store_true', required=False,
|
|
|
+ help='Returns the gems registered with the project.json.')
|
|
|
+ group.add_argument('-pt', '--project-templates', action='store_true',
|
|
|
default=False,
|
|
|
- help='Just the local gems. Ignores repos')
|
|
|
- group.add_argument('-at', '--all-templates', action='store_true', required=False,
|
|
|
+ help='Returns the templates registered with the project.json.')
|
|
|
+ group.add_argument('-prs', '--project-restricted', action='store_true',
|
|
|
default=False,
|
|
|
- help='Just the local templates. Ignores repos.')
|
|
|
- group.add_argument('-ars', '--all-restricted', action='store_true', required=False,
|
|
|
+ help='Returns the restricted directories registered with the project.json.')
|
|
|
+ group.add_argument('-pes', '--project-external-subdirectories', action='store_true',
|
|
|
default=False,
|
|
|
- help='The restricted folders.')
|
|
|
+ help='Returns the external subdirectories register with the project.json.')
|
|
|
|
|
|
- group.add_argument('-d', '--downloadables', action='store_true', required=False,
|
|
|
+ group.add_argument('-ap', '--all-projects', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Combine all repos into a single list of resources.')
|
|
|
- group.add_argument('-de', '--downloadable-engines', action='store_true', required=False,
|
|
|
+ help='Output all projects registered in the ~/.o3de/o3de_manifest.json and the current engine.json. Ignores repos.')
|
|
|
+ group.add_argument('-ag', '--all-gems', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Combine all repos engines into a single list of resources.')
|
|
|
- group.add_argument('-dp', '--downloadable-projects', action='store_true', required=False,
|
|
|
+ help='Output all gems registered in the ~/.o3de/o3de_manifest.json and the current engine.json. Ignores repos')
|
|
|
+ group.add_argument('-at', '--all-templates', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Combine all repos projects into a single list of resources.')
|
|
|
- group.add_argument('-dg', '--downloadable-gems', action='store_true', required=False,
|
|
|
+ help='Output all templates registered in the ~/.o3de/o3de_manifest.json and the current engine.json. Ignores repos.')
|
|
|
+ group.add_argument('-ares', '--all-restricted', action='store_true', required=False,
|
|
|
default=False,
|
|
|
- help='Combine all repos gems into a single list of resources.')
|
|
|
- group.add_argument('-dt', '--downloadable-templates', action='store_true', required=False,
|
|
|
+ help='Output all restricted directory registered in the ~/.o3de/o3de_manifest.json and the current engine.json.')
|
|
|
+ group.add_argument('-aes', '--all-external-subdirectories', action='store_true',
|
|
|
default=False,
|
|
|
- help='Combine all repos templates into a single list of resources.')
|
|
|
+ help='Output all external subdirectories registered in the ~/.o3de/o3de_manifest.json and the current engine.json.')
|
|
|
|
|
|
parser.add_argument('-v', '--verbose', action='count', required=False,
|
|
|
- default=0,
|
|
|
- help='How verbose do you want the output to be.')
|
|
|
+ default=0,
|
|
|
+ help='How verbose do you want the output to be.')
|
|
|
+
|
|
|
+ project_group = parser.add_mutually_exclusive_group(required=False)
|
|
|
+ project_group.add_argument('-pp', '--project-path', type=pathlib.Path,
|
|
|
+ help='The path to a project.')
|
|
|
+ project_group.add_argument('-pn', '--project-name', type=str,
|
|
|
+ help='The name of a project.')
|
|
|
|
|
|
parser.add_argument('-ohf', '--override-home-folder', type=str, required=False,
|
|
|
- help='By default the home folder is the user folder, override it to this folder.')
|
|
|
+ help='By default the home folder is the user folder, override it to this folder.')
|
|
|
|
|
|
parser.set_defaults(func=_run_register_show)
|
|
|
|