Skip to content

Commit

Permalink
Add support for module directories
Browse files Browse the repository at this point in the history
  • Loading branch information
JakobGM committed Feb 26, 2018
1 parent 9707ccd commit 8aade76
Show file tree
Hide file tree
Showing 22 changed files with 867 additions and 144 deletions.
419 changes: 340 additions & 79 deletions astrality/config.py

Large diffs are not rendered by default.

7 changes: 4 additions & 3 deletions astrality/config/astrality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,14 @@ config/modules:
# $ASTRALITY_CONFIG_HOME/modules
modules_directory: modules

# You enable external modules by specifying the <name> of each external
# You enable directory modules by specifying the <name> of each external
# module. The result is that the configurations contained in the following
# files are merged into this file: <modules_directory>/<name>/modules.yml
enabled:
- name: solar_desktop
- name: polybar
- name: colors
- name: terminals


context/host:
Expand Down Expand Up @@ -131,7 +134,6 @@ module/terminals:
# Alacritty: https://github.com/jwilm/alacritty
# Kitty: https://github.com/kovidgoyal/kitty

enabled: false
requires:
- command -v alacritty
- command -v kitty
Expand All @@ -145,7 +147,6 @@ module/terminals:


module/polybar:
enabled: true
requires: command -v polybar

on_startup:
Expand Down
8 changes: 8 additions & 0 deletions astrality/exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
class AstralityConfigurationError(BaseException):
pass

class NonExistentEnabledModule(AstralityConfigurationError):
pass

class MisconfiguredConfigurationFile(AstralityConfigurationError):
pass
25 changes: 17 additions & 8 deletions astrality/module.py
Original file line number Diff line number Diff line change
Expand Up @@ -345,30 +345,34 @@ def __init__(self, config: ApplicationConfig) -> None:
self.last_module_events: Dict[str, str] = {}

# Get module configurations which are externally defined
global_modules_config = GlobalModulesConfig( # type: ignore
self.global_modules_config = GlobalModulesConfig( # type: ignore
config=config.get('config/modules', {}),
config_directory=self.config_directory,
)
self.recompile_modified_templates = global_modules_config.recompile_modified_templates
self.recompile_modified_templates = self.global_modules_config.recompile_modified_templates

self.modules: Dict[str, Module] = {}

# Insert externally managed modules
for external_module_source in global_modules_config.external_module_sources:
for external_module_source in self.global_modules_config.external_module_sources:
module_directory = external_module_source.directory

module_configs = external_module_source.module_config_dict()
module_configs = external_module_source.config

# Insert context defined in external configuration
self.application_context.update(context(module_configs))

for section, options in module_configs.items():
module_config = {section: options}
if Module.valid_class_section(

valid_module = Module.valid_class_section(
section=module_config,
requires_timeout=self.application_config['config/astrality']['requires_timeout'],
requires_working_directory=module_directory,
):
)
enabled_module = section in self.global_modules_config.enabled_modules

if valid_module and enabled_module:
module = Module(
module_config=module_config,
module_directory=module_directory,
Expand All @@ -382,11 +386,16 @@ def __init__(self, config: ApplicationConfig) -> None:
# Insert modules defined in `astrality.yml`
for section, options in config.items():
module_config = {section: options}
if Module.valid_class_section(

# Check if this module should be included
valid_module = Module.valid_class_section(
section=module_config,
requires_timeout=self.application_config['config/astrality']['requires_timeout'],
requires_working_directory=self.config_directory,
):
)
enabled_module = section in self.global_modules_config.enabled_modules

if valid_module and enabled_module:
module = Module(
module_config=module_config,
module_directory=self.config_directory,
Expand Down

0 comments on commit 8aade76

Please sign in to comment.