@ -13,6 +13,7 @@ import argparse
import json
import json
import hashlib
import hashlib
import logging
import logging
import pathlib
import sys
import sys
import urllib . parse
import urllib . parse
@ -21,219 +22,251 @@ from o3de import manifest, validation
logger = logging . getLogger ( )
logger = logging . getLogger ( )
logging . basicConfig ( )
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 ( )
engine_data = manifest . get_this_engine ( )
print ( json . dumps ( engine_data , indent = 4 ) )
print ( json . dumps ( engine_data , indent = 4 ) )
result = True
if verbose > 0 :
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 :
def print_engines ( verbose : int ) - > None :
engines_data = manifest . get_engines ( )
engines_data = manifest . get_engines ( )
print ( json . dumps ( engines_data , indent = 4 ) )
print ( json . dumps ( engines_data , indent = 4 ) )
if verbose > 0 :
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 ( )
projects_data = manifest . get_projects ( )
print ( json . dumps ( projects_data , indent = 4 ) )
print ( json . dumps ( projects_data , indent = 4 ) )
if verbose > 0 :
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 ( )
gems_data = manifest . get_gems ( )
print ( json . dumps ( gems_data , indent = 4 ) )
print ( json . dumps ( gems_data , indent = 4 ) )
if verbose > 0 :
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 ( )
templates_data = manifest . get_templates ( )
print ( json . dumps ( templates_data , indent = 4 ) )
print ( json . dumps ( templates_data , indent = 4 ) )
if verbose > 0 :
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 ( )
restricted_data = manifest . get_restricted ( )
print ( json . dumps ( restricted_data , indent = 4 ) )
print ( json . dumps ( restricted_data , indent = 4 ) )
if verbose > 0 :
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 ( )
engine_projects_data = manifest . get_engine_projects ( )
print ( json . dumps ( engine_projects_data , indent = 4 ) )
print ( json . dumps ( engine_projects_data , indent = 4 ) )
if verbose > 0 :
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 ( )
engine_gems_data = manifest . get_engine_gems ( )
print ( json . dumps ( engine_gems_data , indent = 4 ) )
print ( json . dumps ( engine_gems_data , indent = 4 ) )
if verbose > 0 :
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 ( )
engine_templates_data = manifest . get_engine_templates ( )
print ( json . dumps ( engine_templates_data , indent = 4 ) )
print ( json . dumps ( engine_templates_data , indent = 4 ) )
if verbose > 0 :
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 ( )
engine_restricted_data = manifest . get_engine_restricted ( )
print ( json . dumps ( engine_restricted_data , indent = 4 ) )
print ( json . dumps ( engine_restricted_data , indent = 4 ) )
if verbose > 0 :
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 ( )
external_subdirs_data = manifest . get_engine_external_subdirectories ( )
print ( json . dumps ( external_subdirs_data , indent = 4 ) )
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 ( )
all_projects_data = manifest . get_all_projects ( )
print ( json . dumps ( all_projects_data , indent = 4 ) )
print ( json . dumps ( all_projects_data , indent = 4 ) )
if verbose > 0 :
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 ( )
all_gems_data = manifest . get_all_gems ( )
print ( json . dumps ( all_gems_data , indent = 4 ) )
print ( json . dumps ( all_gems_data , indent = 4 ) )
if verbose > 0 :
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 ( )
all_templates_data = manifest . get_all_templates ( )
print ( json . dumps ( all_templates_data , indent = 4 ) )
print ( json . dumps ( all_templates_data , indent = 4 ) )
if verbose > 0 :
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 ( )
all_restricted_data = manifest . get_all_restricted ( )
print ( json . dumps ( all_restricted_data , indent = 4 ) )
print ( json . dumps ( all_restricted_data , indent = 4 ) )
if verbose > 0 :
print_restricted_data ( all_restricted_data )
if verbose > 0 :
def print_engines_data ( engines_data : dict ) - > None :
return print_manifest_json_data ( all_restricted_data , ' restricted.json ' , ' Restricted ' ,
print ( ' \n ' )
manifest . get_restricted_json_data , ' restricted_path ' )
print ( " Engines================================================ " )
return 0
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 ' )
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 ( ' \n ' )
print ( " Gems ================================================" )
print ( f " { print_prefix } ================================================ " )
for gem_uri in gems _data:
for manifest_uri in uri_json_data :
# if it's not local it should be in the cache
# if it's not local it should be in the cache
parsed_uri = urllib . parse . urlparse ( gem_uri )
parsed_uri = urllib . parse . urlparse ( manifest_uri )
if parsed_uri . scheme == ' http ' or \
if parsed_uri . scheme in [ ' http ' , ' https ' , ' ftp ' , ' ftps ' ] :
parsed_uri . scheme == ' https ' or \
repo_sha256 = hashlib . sha256 ( manifest_uri . encode ( ) )
parsed_uri . scheme == ' ftp ' or \
parsed_uri . scheme == ' ftps ' :
repo_sha256 = hashlib . sha256 ( gem_uri . encode ( ) )
cache_folder = manifest . get_o3de_cache_folder ( )
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 :
else :
gem_json = pathlib . Path ( gem_uri ) . resolve ( ) / ' gem.json '
manifest_json_path = pathlib . Path ( manifest_uri ) . resolve ( ) / json_filename
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 ' )
json_data = get_json_func ( * * { get_json_data_kwargs : manifest_json_path } )
def print_templates_data ( templates_data : dict ) - > None :
if json_data :
print ( ' \n ' )
print ( manifest_json_path )
print ( " Templates================================================ " )
print ( json . dumps ( json_data , indent = 4 ) + ' \n ' )
for template_uri in templates_data :
return 0
# 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 ' )
def print_repos_data ( repos_data : dict ) - > None :
def print_repos_data ( repos_data : dict ) - > int :
print ( ' \n ' )
print ( ' \n ' )
print ( " Repos================================================ " )
print ( " Repos================================================ " )
cache_folder = manifest . get_o3de_cache_folder ( )
cache_folder = manifest . get_o3de_cache_folder ( )
@ -251,29 +284,16 @@ def print_repos_data(repos_data: dict) -> None:
print ( cache_file )
print ( cache_file )
print ( json . dumps ( repo_json_data , indent = 4 ) )
print ( json . dumps ( repo_json_data , indent = 4 ) )
print ( ' \n ' )
print ( ' \n ' )
return 0
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 ' )
def register_show_repos ( verbose : int ) - > None :
def register_show_repos ( verbose : int ) - > None :
repos_data = get_repos( )
repos_data = manifest . get_repos ( )
print ( json . dumps ( repos_data , indent = 4 ) )
print ( json . dumps ( repos_data , indent = 4 ) )
if verbose > 0 :
if verbose > 0 :
print_repos_data ( repos_data )
return print_repos_data ( repos_data ) == 0
return 0
def register_show ( verbose : int ) - > None :
def register_show ( verbose : int ) - > None :
@ -281,13 +301,15 @@ def register_show(verbose: int) -> None:
print ( f " { manifest . get_o3de_manifest ( ) } : " )
print ( f " { manifest . get_o3de_manifest ( ) } : " )
print ( json . dumps ( json_data , indent = 4 ) )
print ( json . dumps ( json_data , indent = 4 ) )
result = True
if verbose > 0 :
if verbose > 0 :
print_engines_data ( manifest . get_engines ( ) )
result = print_manifest_json_data ( manifest . get_engines ( ) ) == 0 and result
print_projects_data ( manifest . get_all_projects ( ) )
result = print_manifest_json_data ( manifest . get_all_projects ( ) ) == 0 and result
print_gems_data ( manifest . get_gems ( ) )
result = print_manifest_json_data ( manifest . get_gems ( ) ) == 0 and result
print_templates_data ( manifest . get_all_templates ( ) )
result = print_manifest_json_data ( manifest . get_all_templates ( ) ) == 0 and result
print_restricted_data ( manifest . get_all_restricted ( ) )
result = print_manifest_json_data ( manifest . get_all_restricted ( ) ) == 0 and result
print_repos_data ( manifest . get_repos ( ) )
result = print_repos_data ( manifest . get_repos ( ) ) == 0 and result
return 0 if result else 1
def _run_register_show ( args : argparse ) - > int :
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
manifest . override_home_folder = args . override_home_folder
if args . this_engine :
if args . this_engine :
print_this_engine ( args . verbose )
return print_this_engine ( args . verbose )
return 0
elif args . engines :
elif args . engines :
print_engines ( args . verbose )
return print_engines ( args . verbose )
return 0
elif args . projects :
elif args . projects :
print_projects ( args . verbose )
return print_projects ( args . verbose )
return 0
elif args . gems :
elif args . gems :
print_gems ( args . verbose )
return print_gems ( args . verbose )
return 0
elif args . templates :
elif args . templates :
print_templates ( args . verbose )
return print_templates ( args . verbose )
return 0
elif args . repos :
elif args . repos :
register_show_repos ( args . verbose )
return register_show_repos ( args . verbose )
return 0
elif args . restricted :
elif args . restricted :
print_restricted ( args . verbose )
return print_restricted ( args . verbose )
return 0
elif args . engine_projects :
elif args . engine_projects :
print_engine_projects ( args . verbose )
return print_engine_projects ( args . verbose )
return 0
elif args . engine_gems :
elif args . engine_gems :
print_engine_gems ( args . verbose )
return print_engine_gems ( args . verbose )
return 0
elif args . engine_external_subdirectories :
return print_engine_external_subdirectories ( )
elif args . engine_templates :
elif args . engine_templates :
print_engine_templates ( args . verbose )
return print_engine_templates ( args . verbose )
return 0
elif args . engine_restricted :
elif args . engine_restricted :
print_engine_restricted ( args . verbose )
return print_engine_restricted ( args . verbose )
return 0
elif args . engine_external_subdirectories :
elif args . project_gems :
print_engine_external_subdirectories ( args . verbose )
return print_project_gems ( args . verbose , args . project_path , args . project_name )
return 0
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 :
elif args . all_projects :
print_all_projects ( args . verbose )
return print_all_projects ( args . verbose )
return 0
elif args . all_gems :
elif args . all_gems :
print_all_gems ( args . verbose )
return print_all_gems ( args . verbose )
return 0
elif args . all_external_subdirectories :
return print_all_external_subdirectories ( )
elif args . all_templates :
elif args . all_templates :
print_all_templates ( args . verbose )
return print_all_templates ( args . verbose )
return 0
elif args . all_restricted :
elif args . all_restricted :
print_all_restricted ( args . verbose )
return 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
else :
else :
register_show ( args . verbose )
return register_show ( args . verbose )
return 0
def add_parser_args ( parser ) :
def add_parser_args ( parser ) :
@ -376,78 +376,84 @@ def add_parser_args(parser):
group = parser . add_mutually_exclusive_group ( required = False )
group = parser . add_mutually_exclusive_group ( required = False )
group . add_argument ( ' -te ' , ' --this-engine ' , action = ' store_true ' , required = False ,
group . add_argument ( ' -te ' , ' --this-engine ' , action = ' store_true ' , required = False ,
default = False ,
default = False ,
help = ' Just the local engines .' )
help = ' Output the current engine path .' )
group . add_argument ( ' -e ' , ' --engines ' , action = ' store_true ' , required = False ,
group . add_argument ( ' -e ' , ' --engines ' , action = ' store_true ' , required = False ,
default = 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 ,
group . add_argument ( ' -p ' , ' --projects ' , action = ' store_true ' , required = False ,
default = 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 ,
group . add_argument ( ' -g ' , ' --gems ' , action = ' store_true ' , required = False ,
default = 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 ,
group . add_argument ( ' -t ' , ' --templates ' , action = ' store_true ' , required = False ,
default = 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 ,
group . add_argument ( ' -r ' , ' --repos ' , action = ' store_true ' , required = False ,
default = 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 ,
group . add_argument ( ' -rs ' , ' --restricted ' , action = ' store_true ' , required = False ,
default = 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 ,
group . add_argument ( ' -ep ' , ' --engine-projects ' , action = ' store_true ' , required = False ,
default = 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 ,
group . add_argument ( ' -eg ' , ' --engine-gems ' , action = ' store_true ' , required = False ,
default = 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 ,
group . add_argument ( ' -et ' , ' --engine-templates ' , action = ' store_true ' , required = False ,
default = 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 ,
group . add_argument ( ' -ers ' , ' --engine-restricted ' , action = ' store_true ' , required = False ,
default = False ,
default = False ,
help = ' The restricted folders .' )
help = ' Output the restricted directories registered in the current engine engine.json .' )
group . add_argument ( ' - x ' , ' --engine-external-subdirectories ' , action = ' store_true ' , required = False ,
group . add_argument ( ' - ees ' , ' --engine-external-subdirectories ' , action = ' store_true ' , required = False ,
default = False ,
default = False ,
help = ' The external subdirectories .' )
help = ' Output the external subdirectories registered in the current engine engine.json .' )
group . add_argument ( ' - a p' , ' -- all- projects' , action = ' store_true ' , required = False ,
group . add_argument ( ' - pg ' , ' -- project-gem s' , action = ' store_true ' ,
default = False ,
default = False ,
help = ' Just the local projects. Ignores repos .' )
help = ' Returns the gems registered with the project.json .' )
group . add_argument ( ' - ag' , ' --all-gem s' , action = ' store_true ' , required = False ,
group . add_argument ( ' - pt' , ' --project-template s' , action = ' store_true ' ,
default = False ,
default = False ,
help = ' Just the local gems. Ignores repos ' )
help = ' Returns the templates registered with the project.json. ' )
group . add_argument ( ' - at' , ' --all-templates ' , action = ' store_true ' , required = False ,
group . add_argument ( ' - prs' , ' --project-restricted ' , action = ' store_true ' ,
default = False ,
default = False ,
help = ' Just the local templates. Ignores repos .' )
help = ' Returns the restricted directories registered with the project.json .' )
group . add_argument ( ' - ars' , ' --all-restricted ' , action = ' store_true ' , required = False ,
group . add_argument ( ' - pes' , ' --project-external-subdirectories ' , action = ' store_true ' ,
default = False ,
default = False ,
help = ' The restricted folders .' )
help = ' Returns the external subdirectories register with the project.json .' )
group . add_argument ( ' - d' , ' --downloadable s' , action = ' store_true ' , required = False ,
group . add_argument ( ' - ap' , ' --all-project s' , action = ' store_true ' , required = False ,
default = False ,
default = False ,
help = ' Combine all repos into a single list of resource s.' )
help = ' Output all projects registered in the ~/.o3de/o3de_manifest.json and the current engine.json. Ignores repo s.' )
group . add_argument ( ' - de' , ' --downloadable-engine s' , action = ' store_true ' , required = False ,
group . add_argument ( ' - ag' , ' --all-gem s' , action = ' store_true ' , required = False ,
default = False ,
default = False ,
help = ' Combine all repos engines into a single list of resources. ' )
help = ' Output all gems registered in the ~/.o3de/o3de_manifest.json and the current engine.json. Ignores repos ' )
group . add_argument ( ' - dp' , ' --downloadable-project s' , action = ' store_true ' , required = False ,
group . add_argument ( ' - at' , ' --all-template s' , action = ' store_true ' , required = False ,
default = False ,
default = False ,
help = ' Combine all repos projects into a single list of resource s.' )
help = ' Output all templates registered in the ~/.o3de/o3de_manifest.json and the current engine.json. Ignores repo s.' )
group . add_argument ( ' - dg' , ' --downloadable-gems ' , action = ' store_true ' , required = False ,
group . add_argument ( ' - ares' , ' --all-restricted ' , action = ' store_true ' , required = False ,
default = False ,
default = False ,
help = ' Combine all repos gems into a single list of resources .' )
help = ' Output all restricted directory registered in the ~/.o3de/o3de_manifest.json and the current engine.json .' )
group . add_argument ( ' - dt' , ' --downloadable-templat es' , action = ' store_true ' , required = False ,
group . add_argument ( ' - aes' , ' --all-external-subdirectori es' , action = ' store_true ' ,
default = False ,
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 ,
parser . add_argument ( ' -v ' , ' --verbose ' , action = ' count ' , required = False ,
default = 0 ,
default = 0 ,
help = ' How verbose do you want the output to be. ' )
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 ,
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 )
parser . set_defaults ( func = _run_register_show )