summaryrefslogtreecommitdiff
path: root/src/caelestia/subcommands/scheme.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/caelestia/subcommands/scheme.py')
-rw-r--r--src/caelestia/subcommands/scheme.py60
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")