Skip to content
Snippets Groups Projects
flake.nix 5.01 KiB
{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=23.11";
    flake-utils.url = "github:numtide/flake-utils";
    nur-kapack = {
      url = "github:oar-team/nur-kapack/master";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.flake-utils.follows = "flake-utils";
    };
    intervalset-flake = {
      url = "git+https://framagit.org/batsim/intervalset";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.nur-kapack.follows = "nur-kapack";
      inputs.flake-utils.follows = "flake-utils";
    };
    batprotocol-flake = {
      url = "git+https://framagit.org/batsim/batprotocol";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.nur-kapack.follows = "nur-kapack";
      inputs.flake-utils.follows = "flake-utils";
    };
    batsim-flake = {
      url = "git+https://framagit.org/batsim/batsim?ref=batprotocol";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.nur-kapack.follows = "nur-kapack";
      inputs.batprotocol.follows = "batprotocol-flake";
      inputs.intervalset.follows = "intervalset-flake";
      inputs.flake-utils.follows = "flake-utils";
    };
    easy-powercap-flake = {
      url = "git+https://framagit.org/batsim/easy-powercap.git?tag=europar24";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.nur-kapack.follows = "nur-kapack";
      inputs.batprotocol-flake.follows = "batprotocol-flake";
      inputs.intervalset-flake.follows = "intervalset-flake";
      inputs.flake-utils.follows = "flake-utils";
    };
    typst-flake = {
      url = "github:typst/typst?rev=21c78abd6eecd0f6b3208405c7513be3bbd8991c";
    };
  };

  outputs = { self, nixpkgs, nur-kapack, intervalset-flake, flake-utils, batprotocol-flake, batsim-flake, easy-powercap-flake, typst-flake }:
    flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
      let
        pkgs = import nixpkgs { inherit system; };
        py = pkgs.python3;
        pyPkgs = pkgs.python3Packages;
        kapack = nur-kapack.packages.${system};
        batprotopkgs = batprotocol-flake.packages.${system};
        intervalsetpkgs = intervalset-flake.packages.${system};
        batpkgs = batsim-flake.packages-release.${system};
        easy-powercap-pkgs = easy-powercap-flake.packages.${system};
        typstpkgs = typst-flake.packages.${system};
      in rec {
        packages = {
          batsim = batpkgs.batsim;
          python-scripts = pyPkgs.buildPythonPackage rec {
            name = "expe-en-py-scripts";
            format = "pyproject";
            src = pkgs.lib.sourceByRegex ./scripts-py [
              "^pyproject\.toml$"
              "^expe_energumen"
              "^expe_energumen/.*\.py"
            ];
            nativeBuildInputs = with pyPkgs; [
              setuptools
              setuptools-scm
            ];
            propagatedBuildInputs = with pyPkgs; [