From 6284c74a32dc90557d0ad7ebf6811286d6e110b4 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Tue, 17 Jun 2025 12:10:31 +1000 Subject: scheme: add list and get subcommands --- src/caelestia/subcommands/scheme.py | 60 +++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) (limited to 'src/caelestia/subcommands') 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: @@ -26,5 +26,61 @@ class Command: if self.args.variant: 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") -- cgit v1.2.3-freya