expose overlay (2)

This commit is contained in:
Jonas Heinrich 2025-03-12 11:29:56 +01:00
parent 9243e1fe0f
commit 05f710b980
3 changed files with 55 additions and 91 deletions

110
flake.nix
View file

@ -1,63 +1,59 @@
{
inputs = {
nixpkgs.url = "nixpkgs/nixos-24.11";
# Required for multi platform support
flake-utils.url = "github:numtide/flake-utils";
};
description = "eintopf-radar-sync package and service";
outputs =
{
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
in
rec {
devShell = pkgs.mkShell {
packages =
with pkgs;
with python3Packages;
[
python
requests
beautifulsoup4
pyyaml
];
};
inputs.nixpkgs.url = "nixpkgs/nixos-24.11";
packages = flake-utils.lib.flattenTree {
eintopf-radar-sync = pkgs.python3Packages.buildPythonApplication {
pname = "eintopf-radar-sync";
version = "0.0.1";
format = "other";
src = self;
dependencies = with pkgs.python3Packages; [
python
requests
beautifulsoup4
pyyaml
];
installPhase = ''
install -Dm755 ${./eintopf-radar-sync.py} $out/bin/eintopf-radar-sync
'';
};
};
defaultPackage = packages.eintopf-radar-sync;
# eintopf-radar-sync service module
nixosModule = (import ./module.nix);
overlay = self: super: {
eintopf-radar-sync = packages.eintopf-radar-sync;
};
outputs = { self, nixpkgs }:
let
systems = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system);
# Import nixpkgs with our overlay for each system.
nixpkgsFor = forAllSystems (system:
import nixpkgs {
inherit system;
overlays = [ self.overlay ];
}
);
in {
overlay = final: prev: {
eintopf-radar-sync = with final; python3Packages.buildPythonApplication {
pname = "eintopf-radar-sync";
version = "0.0.1";
format = "other";
src = self;
dependencies = with python3Packages; [
python
requests
beautifulsoup4
pyyaml
];
installPhase = ''
install -Dm755 ${./eintopf-radar-sync.py} $out/bin/eintopf-radar-sync
'';
};
};
packages = forAllSystems (system: {
inherit (nixpkgsFor.${system}) eintopf-radar-sync;
});
defaultPackage = forAllSystems (system: self.packages.${system}.eintopf-radar-sync);
devShells = forAllSystems (system: let
pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; };
in pkgs.mkShell {
buildInputs = with pkgs; with python3Packages; [
python
requests
beautifulsoup4
pyyaml
];
});
# eintopf-radar-sync service module
nixosModule = (import ./module.nix);
};
}