From bbbc6fdf7e49e0c9e0eacbabb9bd4b49e848b1cf Mon Sep 17 00:00:00 2001 From: Kivi Kaitaniemi Date: Thu, 18 Dec 2025 06:51:35 +0200 Subject: [PATCH] Add missing example files --- example/base.py | 33 +++++++++++++++++++++++++++++++++ example/kde.py | 19 +++++++++++++++++++ example/source.py | 23 +++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 example/base.py create mode 100644 example/kde.py create mode 100644 example/source.py diff --git a/example/base.py b/example/base.py new file mode 100644 index 0000000..441a7e5 --- /dev/null +++ b/example/base.py @@ -0,0 +1,33 @@ +import decman +from decman.plugins import aur, pacman + + +class BaseModule(decman.Module): + def __init__(self): + # I'll intend this module to be a singleton (only one instance ever), + # so I'll inline the module name + super().__init__("base") + + @pacman.packages + def pkgs(self) -> set[str]: + return { + "base", + "btrfs-progs", + "dosfstools", + "efibootmgr", + "grub", + "linux", + # I'll also include git and base-devel here, they are essential to this system + "git", + "base-devel", + } + + @aur.packages + def aurpkgs(self) -> set[str]: + return {"decman"} + + def files(self) -> dict[str, decman.File]: + return {"/etc/mkinitcpio.conf": decman.File(source_file="./files/mkinitcpio.conf")} + + def on_change(self, store): + decman.prg(["mkinitcpio", "-P"]) diff --git a/example/kde.py b/example/kde.py new file mode 100644 index 0000000..1ae30cd --- /dev/null +++ b/example/kde.py @@ -0,0 +1,19 @@ +import decman +from decman.plugins import pacman, systemd + + +class KDE(decman.Module): + def __init__(self): + super().__init__("kde") + + @pacman.packages + def pkgs(self) -> set[str]: + return { + "plasma-desktop", + "konsole", + "sddm", + } + + @systemd.units + def units(self) -> set[str]: + return {"sddm.service"} diff --git a/example/source.py b/example/source.py new file mode 100644 index 0000000..049e185 --- /dev/null +++ b/example/source.py @@ -0,0 +1,23 @@ +from base import BaseModule +from kde import KDE + +import decman + +decman.pacman.packages |= {"openssh", "qemu-guest-agent", "sudo", "vim"} + +decman.modules |= {BaseModule(), KDE()} + +decman.files["/home/arch/.vimrc"] = decman.File( + source_file="./files/vimrc", owner="arch", permissions=0o600 +) + +decman.execution_order = [ + "files", + "pacman", + "aur", + "flatpak", + "systemd", +] + +decman.pacman.packages.add("flatpak") +decman.flatpak.packages |= {"org.mozilla.firefox", "org.signal.Signal"}