aboutsummaryrefslogtreecommitdiffstats
path: root/unmaintained_templates/python/flake.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-04-01 12:54:37 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-04-01 12:54:37 +0200
commit08eb5c464906a29e9f5135e1fb11e872b93746b1 (patch)
treec1cbbeade93e8d74009273e51e9fb9744bcf3d0a /unmaintained_templates/python/flake.nix
parentdocs(update_common_files): Improve terminal output (diff)
downloadflake-templates-08eb5c464906a29e9f5135e1fb11e872b93746b1.zip
refactor(templates/unmaintained): Move out of the templates dir
Otherwise, the `update_common_files` script will try to instantiate files in there, which is just useless noise.
Diffstat (limited to 'unmaintained_templates/python/flake.nix')
-rw-r--r--unmaintained_templates/python/flake.nix67
1 files changed, 67 insertions, 0 deletions
diff --git a/unmaintained_templates/python/flake.nix b/unmaintained_templates/python/flake.nix
new file mode 100644
index 0000000..36c7478
--- /dev/null
+++ b/unmaintained_templates/python/flake.nix
@@ -0,0 +1,67 @@
+{
+ description = ""; # TODO: fill this out
+
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ flake-utils.url = "github:numtide/flake-utils";
+
+ mach-nix.url = "github:davhau/mach-nix";
+ };
+
+ outputs = {
+ self,
+ nixpkgs,
+ mach-nix,
+ flake-utils,
+ ...
+ }: let
+ pythonVersion = "python39"; # TODO: update if necessary
+ in
+ flake-utils.lib.eachDefaultSystem (
+ system: let
+ pkgs = nixpkgs.legacyPackages.${system};
+ mach = mach-nix.lib.${system};
+
+ pythonApp = mach.buildPythonApplication ./.;
+ pythonAppEnv = mach.mkPython {
+ python = pythonVersion;
+ requirements = builtins.readFile ./requirements.txt;
+ };
+ pythonAppImage = pkgs.dockerTools.buildLayeredImage {
+ name = pythonApp.pname;
+ contents = [pythonApp];
+ config.Cmd = ["${pythonApp}/bin/main"];
+ };
+ in {
+ packages = {
+ image = pythonAppImage;
+ pythonPkg = pythonApp;
+
+ default = self.packages.pythonPkg;
+ };
+
+ apps.default = {
+ type = "app";
+ program = "${self.packages.pythonPkg}/bin/main";
+ };
+
+ devShells.default = pkgs.mkShell {
+ packages = with pkgs; [
+ pythonAppEnv
+ black
+ ruff
+ python310Packages.python-lsp-server
+ gnat
+ ];
+
+ env = {
+ LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [
+ pkgs.stdenv.cc.cc
+ ];
+
+ PYTHONPATH = "${pythonAppEnv}/bin/python";
+ };
+ };
+ }
+ );
+}