From a8274d74fa19197ad97204807e4ffebb21499fb9 Mon Sep 17 00:00:00 2001 From: Antonio de la Rosa Date: Tue, 14 Oct 2025 19:24:57 +0200 Subject: [PATCH] Fixes in install_module --- paramecio2/libraries/i18n.py | 2 -- paramecio2/scripts/install_module.py | 42 ++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/paramecio2/libraries/i18n.py b/paramecio2/libraries/i18n.py index 2014705..89f501c 100644 --- a/paramecio2/libraries/i18n.py +++ b/paramecio2/libraries/i18n.py @@ -126,7 +126,6 @@ class I18n: Method for get a string from selected language but object oriented and using module and symbol by default Args: - symbol (str): The symbol used for identify the text string. text_default (str): The text default used. You have use how base for translations. """ @@ -158,7 +157,6 @@ class I18n: Method for get a string from selected language but object oriented and using module and symbol by default Args: - symbol (str): The symbol used for identify the text string. text_default (str): The text default used. You have use how base for translations. """ diff --git a/paramecio2/scripts/install_module.py b/paramecio2/scripts/install_module.py index d50ae5e..ff0b7d1 100644 --- a/paramecio2/scripts/install_module.py +++ b/paramecio2/scripts/install_module.py @@ -48,12 +48,48 @@ def start(): if not e.name in config.apps: #print(e.name) if args.git_url.find(e.name)!=-1: - real_path=e.name + real_path=os.path.basename(e.name) - # Add to json configuration. + # Add dependencies using pip os.chdir('../') + dependencies_file='./modules/{}/dependencies.json'.format(real_path) + + if os.path.isfile(dependencies_file): + #print('install dependencies') + dep_json=[] + + with open(dependencies_file) as f: + + content=f.read() + + try: + dep_json=json.loads(content) + except: + dep_json=[] + print('Error: cannot install dependencies for the package. Malformed json {}'.format(content)) + + if len(dep_json)>0: + if 'packages' in dep_json: + print('Install dependencies for the module...') + arr_packages=" ".join(dep_json['packages']) + if subprocess.call("pip install {}".format(arr_packages), shell=True) > 0: + print('Error, cannot install the pip libraries. Do you have installed pip?.') + + if 'models' in dep_json: + print('Creating database tables from models in module...') + for model in dep_json['models']: + if subprocess.call("paramecio2db --model modules/{}/models/{}.py".format(real_path, model), shell=True) > 0: + + print('Error, cannot install the model {}.'.format(model)) + + #print(real_path) + + # + + # Add to json configuration. + if real_path!='': if os.path.isfile('settings/modules.json'): @@ -61,7 +97,7 @@ def start(): modules_json={} with open('settings/modules.json') as f: - + print('Inserting new module in modules.json...') #apps={'monit2': ['modules.monit2', 'monit2_app', '/'], 'welcome': ['paramecio2.modules.welcome', 'welcome_app', '/'], 'pastafari2': ['modules.pastafari2', 'pastafari_app', '/'], 'apache': ['modules.apache', 'apache_app', '/'], 'mariadb': ['modules.mariadb', 'mariadb_app', '/'], 'apiv1': ['modules.apiv1', 'apiv1_app', '/'], 'admin': ['paramecio2.modules.admin', 'admin_app', '/']} json_text=f.read()