57 lines
1.0 KiB
Python
57 lines
1.0 KiB
Python
from typing import Optional, TypedDict
|
|
|
|
|
|
class ArchMgrConfig(TypedDict):
|
|
pkgs: ArchMgrPkgConfig
|
|
users: list[ArchMgrUserConfig]
|
|
|
|
|
|
class ArchMgrPkgConfig(TypedDict):
|
|
individual: list[str]
|
|
bundles: list[object] # TODO: Better typing
|
|
repos: object # TODO: Repo typing
|
|
|
|
|
|
class ArchMgrUserConfig(TypedDict):
|
|
username: str
|
|
groups: list[str]
|
|
home_dir: bool
|
|
|
|
|
|
class ArchMgrBootConfig(TypedDict):
|
|
bootloader: str
|
|
esp_dir: str
|
|
theme_folder: str
|
|
os_prober: bool
|
|
|
|
|
|
class ArchMgrThemeConfig(TypedDict):
|
|
gtk: str
|
|
qt: str
|
|
font: str
|
|
icon_theme: str
|
|
cursor_theme: str
|
|
|
|
|
|
class ArchMgrGitConfig(TypedDict):
|
|
creds: object # TODO:
|
|
repos: object # TODO
|
|
|
|
|
|
class ArchMgrGitRepoConfig(TypedDict):
|
|
clone_path: str
|
|
url: str
|
|
|
|
|
|
class ArchMgrCmdsConfig(TypedDict):
|
|
always: ArchMgrCommand
|
|
once: ArchMgrCommand
|
|
|
|
|
|
class ArchMgrCommand(TypedDict):
|
|
cmd: str
|
|
name: Optional[str]
|
|
capture_output: Optional[bool]
|
|
hook: Optional[str]
|
|
user: Optional[str]
|