summaryrefslogtreecommitdiff
path: root/src/caelestia/subcommands/scheme.py
blob: e149d135a66924275a369fe2566ece9b009b8596 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from argparse import Namespace

from caelestia.utils.scheme import get_scheme
from caelestia.utils.theme import apply_colours


class Command:
    args: Namespace

    def __init__(self, args: Namespace) -> None:
        self.args = args

    def run(self) -> None:
        scheme = get_scheme()

        if self.args.random:
            scheme.set_random()
        elif self.args.name or self.args.flavour or self.args.mode:
            if self.args.name:
                scheme.name = self.args.name
            if self.args.flavour:
                scheme.flavour = self.args.flavour
            if self.args.mode:
                scheme.mode = self.args.mode
            apply_colours(scheme.colours, scheme.mode)
        else:
            print(scheme)