forked from sh-edraft.de/sh_linux_installation_scripts
Improved menu & config
This commit is contained in:
39
src/multi_install/config/application_list_settings.py
Normal file
39
src/multi_install/config/application_list_settings.py
Normal file
@@ -0,0 +1,39 @@
|
||||
import traceback
|
||||
|
||||
from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC
|
||||
from cpl_core.console import Console
|
||||
|
||||
from multi_install.config.application_settings import ApplicationSettings
|
||||
|
||||
|
||||
class ApplicationListSettings(ConfigurationModelABC):
|
||||
|
||||
def __init__(self):
|
||||
ConfigurationModelABC.__init__(self)
|
||||
|
||||
self._debian_apps = []
|
||||
self._red_hat_apps = []
|
||||
|
||||
@property
|
||||
def debian_apps(self) -> str:
|
||||
return self._debian_apps
|
||||
|
||||
@property
|
||||
def redhat_apps(self) -> str:
|
||||
return self._debian_apps
|
||||
|
||||
def from_dict(self, settings: dict):
|
||||
try:
|
||||
|
||||
for app_cfg in settings['Debian']:
|
||||
app = ApplicationSettings()
|
||||
app.from_dict(app_cfg)
|
||||
self._debian_apps.append(app)
|
||||
|
||||
for app_cfg in settings['RedHat']:
|
||||
app = ApplicationSettings()
|
||||
app.from_dict(app_cfg)
|
||||
self._red_hat_apps.append(app)
|
||||
except Exception as e:
|
||||
Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {self.__name__} settings')
|
||||
Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
|
36
src/multi_install/config/application_settings.py
Normal file
36
src/multi_install/config/application_settings.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import traceback
|
||||
from typing import Optional
|
||||
|
||||
from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC
|
||||
from cpl_core.console import Console
|
||||
|
||||
|
||||
class ApplicationSettings(ConfigurationModelABC):
|
||||
|
||||
def __init__(self):
|
||||
ConfigurationModelABC.__init__(self)
|
||||
|
||||
self._name = ''
|
||||
self._repository = ''
|
||||
self._source_url = ''
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
return self._name
|
||||
|
||||
@property
|
||||
def repository(self) -> str:
|
||||
return self._repository
|
||||
|
||||
@property
|
||||
def source_url(self) -> Optional[str]:
|
||||
return self._source_url(self)
|
||||
|
||||
def from_dict(self, settings: dict):
|
||||
try:
|
||||
self._name = settings['Name']
|
||||
self._repository = settings['Repository'] if 'Repository' in settings else None
|
||||
self._source_url = settings['SourceUrl'] if 'SourceUrl' in settings else None
|
||||
except Exception as e:
|
||||
Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {self.__name__} settings')
|
||||
Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')
|
@@ -3,11 +3,13 @@ from enum import Enum
|
||||
|
||||
class MainMenuEnum(Enum):
|
||||
|
||||
list_collection = 'List collection'
|
||||
install_collection = 'Install collection'
|
||||
uninstall_collection = 'Uninstall collection'
|
||||
add_collection = 'Add collection'
|
||||
remove_collection = 'Remove collection'
|
||||
|
||||
list_application = 'List application'
|
||||
install_application = 'Install application'
|
||||
uninstall_application = 'Uninstall application'
|
||||
add_application = 'Add application'
|
||||
|
@@ -1,9 +1,10 @@
|
||||
from multi_install.abc.application_menu_service_abc import ApplicationMenuServiceABC
|
||||
from multi_install.config.application_list_settings import ApplicationListSettings
|
||||
|
||||
|
||||
class ApplicationMenuService(ApplicationMenuServiceABC):
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, application_settings: ApplicationListSettings):
|
||||
pass
|
||||
|
||||
def install_application(self): pass
|
||||
|
@@ -69,12 +69,14 @@ class MenuService(MenuServiceABC):
|
||||
return True
|
||||
|
||||
# collection menu
|
||||
if selected == options.index(MainMenuEnum.install_collection.value): pass
|
||||
if selected == options.index(MainMenuEnum.list_collection.value): pass
|
||||
elif selected == options.index(MainMenuEnum.install_collection.value): pass
|
||||
elif selected == options.index(MainMenuEnum.uninstall_collection.value): pass
|
||||
elif selected == options.index(MainMenuEnum.add_collection.value): pass
|
||||
elif selected == options.index(MainMenuEnum.remove_collection.value): pass
|
||||
|
||||
# application menu
|
||||
elif selected == options.index(MainMenuEnum.list_application.value): pass
|
||||
elif selected == options.index(MainMenuEnum.install_application.value): pass
|
||||
elif selected == options.index(MainMenuEnum.uninstall_application.value): pass
|
||||
elif selected == options.index(MainMenuEnum.add_application.value): pass
|
||||
|
Reference in New Issue
Block a user