diff options
Diffstat (limited to 'src/caelestia/subcommands/scheme.py')
| -rw-r--r-- | src/caelestia/subcommands/scheme.py | 60 |
1 files changed, 58 insertions, 2 deletions
diff --git a/src/caelestia/subcommands/scheme.py b/src/caelestia/subcommands/scheme.py index c95df96..c8842f7 100644 --- a/src/caelestia/subcommands/scheme.py +++ b/src/caelestia/subcommands/scheme.py @@ -1,10 +1,10 @@ from argparse import Namespace -from caelestia.utils.scheme import get_scheme +from caelestia.utils.scheme import get_scheme, get_scheme_flavours, get_scheme_modes, get_scheme_names, scheme_variants from caelestia.utils.theme import apply_colours -class Command: +class Set: args: Namespace def __init__(self, args: Namespace) -> None: @@ -27,4 +27,60 @@ class Command: scheme.variant = self.args.variant apply_colours(scheme.colours, scheme.mode) else: + print("No args given. Use --name, --flavour, --mode, --variant or --random to set a scheme") + + +class Get: + args: Namespace + + def __init__(self, args: Namespace) -> None: + self.args = args + + def run(self) -> None: + scheme = get_scheme() + + if self.args.name or self.args.flavour or self.args.mode or self.args.variant: + if self.args.name: + print(scheme.name) + if self.args.flavour: + print(scheme.flavour) + if self.args.mode: + print(scheme.mode) + if self.args.variant: + print(scheme.variant) + else: print(scheme) + + +class List: + args: Namespace + + def __init__(self, args: Namespace) -> None: + self.args = args + + def run(self) -> None: + multiple = [self.args.names, self.args.flavours, self.args.modes, self.args.variants].count(True) > 1 + + if self.args.names or self.args.flavours or self.args.modes or self.args.variants: + if self.args.names: + if multiple: + print("Names:", *get_scheme_names()) + else: + print("\n".join(get_scheme_names())) + if self.args.flavours: + if multiple: + print("Flavours:", *get_scheme_flavours()) + else: + print("\n".join(get_scheme_flavours())) + if self.args.modes: + if multiple: + print("Modes:", *get_scheme_modes()) + else: + print("\n".join(get_scheme_modes())) + if self.args.variants: + if multiple: + print("Variants:", *scheme_variants) + else: + print("\n".join(scheme_variants)) + else: + print("No args given. Use --names, --flavours, --modes or --variants to list schemes") |