mirror of
https://github.com/Lore09/Tesi-Magistrale.git
synced 2025-12-19 04:14:35 +00:00
51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
import os
|
|
from dotenv import load_dotenv
|
|
import src.code_generator.generator as code_generator
|
|
import src.wasm_builder.build as wasm_builder
|
|
import src.component_deploy.deploy as deployer
|
|
import src.component_deploy.remove as remover
|
|
import time
|
|
|
|
class Pelato:
|
|
def __init__(self):
|
|
|
|
self.setup_vars()
|
|
|
|
def setup_vars(self):
|
|
|
|
load_dotenv(override=True)
|
|
|
|
self.registry_url = os.getenv('REGISTRY_URL')
|
|
self.reg_user = os.getenv('REGISTRY_USER')
|
|
self.reg_pass = os.getenv('REGISTRY_PASSWORD')
|
|
self.detached = os.getenv('PARALLEL_BUILD')
|
|
self.nats_host = os.getenv('NATS_HOST')
|
|
self.nats_port = os.getenv('NATS_PORT')
|
|
self.metrics_enabled = os.getenv('ENABLE_METRICS') == 'True'
|
|
self.metrics = {}
|
|
|
|
def generate(self, project_dir):
|
|
code_generator.generate(project_dir, self.registry_url, self.metrics, self.metrics_enabled)
|
|
|
|
def build(self, project_dir):
|
|
wasm_builder.build_project(project_dir, self.reg_user, self.reg_pass, self.detached, self.metrics, self.metrics_enabled)
|
|
|
|
def deploy(self, project_dir):
|
|
deployer.deploy_components(project_dir, self.nats_host, self.nats_port, self.detached, self.metrics, self.metrics_enabled)
|
|
|
|
def remove(self, project_dir):
|
|
remover.remove_components(project_dir, self.nats_host, self.nats_port, self.detached)
|
|
|
|
def all(self, project_dir):
|
|
|
|
print('-------------------------------------------')
|
|
print(f"Starting PELATO for project {project_dir}")
|
|
print('-------------------------------------------')
|
|
|
|
self.generate(project_dir)
|
|
time.sleep(1)
|
|
|
|
self.build(project_dir)
|
|
time.sleep(1)
|
|
|
|
self.deploy(project_dir) |