forked from Shinonome/caelestia-cli
scheme: add list and get subcommands
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user