kalpa/flake.nix
Deepak Mallubhotla 4d2d865e9d
All checks were successful
gitea-physics/kalpa/pipeline/head This commit looks good
chore: adds docker flake output and some utility commands
2025-03-22 22:39:39 -05:00

87 lines
1.8 KiB
Nix

{
description = "Application packaged using poetry2nix";
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs.nixpkgs.url = "github:NixOS/nixpkgs";
inputs.poetry2nixSrc = {
url = "github:nix-community/poetry2nix";
inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self, nixpkgs, flake-utils, poetry2nixSrc }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
poetry2nix = poetry2nixSrc.lib.mkPoetry2Nix { inherit pkgs; };
kalpaaApp = poetry2nix.mkPoetryApplication {
projectDir = self;
python = pkgs.python39;
preferWheels = true;
};
kalpaaEnv = poetry2nix.mkPoetryEnv {
projectDir = self;
python = pkgs.python39;
preferWheels = true;
overrides = poetry2nix.overrides.withDefaults (self: super: {
});
};
kalpaa-docker-image = pkgs.dockerTools.buildLayeredImage {
name = "kalpaa";
tag = "latest";
contents = [
# some stuff that dockertools provides?
# pkgs.dockerTools.usrBinEnv
# pkgs.dockerTools.binSh
# pkgs.dockerTools.caCertificates
# pkgs.dockerTools.fakeNss
pkgs.bash
pkgs.coreutils
# pkgs.cacert
# pkgs.gnutar
# pkgs.gzip
# pkgs.gnused
# pkgs.gnugrep
pkgs.uv
kalpaaApp
];
config = {
Cmd = [ "/bin/bash" ];
Env = [
"PATH=/bin"
];
WorkingDir = "/workspace";
};
};
in {
packages = {
inherit kalpaaEnv;
inherit kalpaaApp;
inherit kalpaa-docker-image;
default = self.packages.${system}.kalpaaEnv;
};
devShells.default = pkgs.mkShell {
inputsFrom = [ self.packages.${system}.kalpaaEnv ];
buildInputs = [
pkgs.poetry
self.packages.${system}.kalpaaEnv
self.packages.${system}.kalpaaApp
pkgs.just
pkgs.nodejs
];
shellHook = ''
export DO_NIX_CUSTOM=1
'';
};
}
);
}