Package pkgmgr with multi-format manifests

- Add pyproject.toml and setuptools config for pkgmgr packaging
- Add Nix flake (devShell + pkgmgr package output)
- Add Arch PKGBUILD for system packaging
- Introduce pkgmgr.yml manifest for repo-level dependencies
- Refactor CLI into pkgmgr/cli.py and make main.py a thin entrypoint
- Extend install_repos to handle pkgmgr.yml, PKGBUILD, flake.nix, Ansible and Python manifests
- Enhance status/update to show Nix/yay system status and upgrades
- Improve .gitignore and document requirements.yml

Created with AI (ChatGPT) – see conversation: https://chatgpt.com/share/6932f2ca-f560-800f-8bb0-52cb82f27e88
This commit is contained in:
Kevin Veen-Birkenbach
2025-12-05 15:57:45 +01:00
parent c4395a4764
commit 41084234c7
13 changed files with 956 additions and 546 deletions

40
flake.nix Normal file
View File

@@ -0,0 +1,40 @@
# flake.nix
# This file defines a Nix flake providing a reproducible development environment
# and optional installation package for the package-manager tool.
{
description = "Nix flake for Kevin's package-manager tool";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = { self, nixpkgs }:
let
pkgs = nixpkgs.legacyPackages.x86_64-linux;
in {
# Development environment used via: nix develop
devShells.default = pkgs.mkShell {
# System packages for development
buildInputs = [
pkgs.python311
pkgs.python311Packages.pyyaml
pkgs.git
];
# Message shown on environment entry
shellHook = ''
echo "Entered pkgmgr development environment";
'';
};
# Optional installable package for "nix profile install"
packages.pkgmgr = pkgs.python311Packages.buildPythonApplication {
pname = "package-manager";
version = "0.1.0";
src = ./.;
propagatedBuildInputs = [ pkgs.python311Packages.pyyaml ];
};
};
}