From eb8544ba7bcee403f0444f5af6d0e543ac0e0e99 Mon Sep 17 00:00:00 2001 From: tuxcoder Date: Sun, 19 Nov 2023 23:26:56 +0100 Subject: [PATCH] add nix flake files --- .gitignore | 3 +- flake.lock | 44 +++++++++++++++++++++++ flake.nix | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.gitignore b/.gitignore index 753da6c..28a07de 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ *.py[co] .DS_Store .webassets-cache -build +/source/build +result diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..2970a54 --- /dev/null +++ b/flake.lock @@ -0,0 +1,44 @@ +{ + "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1659446231, + "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-21.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..330548c --- /dev/null +++ b/flake.nix @@ -0,0 +1,104 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.11"; + #nixpkgs.url = "github:NixOS/nixpkgs"; + flake-compat = { + url = "github:edolstra/flake-compat"; + flake = false; + }; + }; + + outputs = { self, nixpkgs, ... }: + let + supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; + pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system}); + in + { + packages = forAllSystems (system: let + pkgs_system = pkgs.${system}; + stdenv = nixpkgs.legacyPackages.${system}.stdenv; + python = pkgs_system.python3; + whitenoise = with python.pkgs; buildPythonPackage rec { + pname = "whitenoise"; + version = "4.1.4"; + src = fetchPypi { + inherit pname version; + sha256 = "22f79cf8f1f509639330f93886acaece8ec5ac5e9600c3b981d33c34e8a42dfd"; + }; + doCheck = false; + propagatedBuildInputs = [ + setuptools + django + ]; + }; + multipart = with python.pkgs; buildPythonPackage rec { + pname = "multipart"; + version = "0.2.4"; + src = fetchPypi { + inherit pname version; + sha256 = "06ba205360bc7096fefe618e4f1e9b2cdb890b4f2157053a81f386912a2522cb"; + }; + doCheck = true; + propagatedBuildInputs = [ + setuptools + ]; + }; + proper-cli = with python.pkgs; buildPythonPackage rec { + pname = "proper-cli"; + version = "1.0"; + format = "pyproject"; + src = fetchPypi { + inherit pname version; + sha256 = "67313e8ed5a2519ca224fe5f0e9237898960b7bb964ea4024e20ed8ee9773b67"; + }; + doCheck = true; + propagatedBuildInputs = [ + setuptools + ]; + }; + clay = with python.pkgs; buildPythonPackage rec { + pname = "clay"; + version = "4.6.2"; + format = "pyproject"; + src = fetchPypi { + inherit pname version; + sha256 = "e822c67532895b4f03aa5ae8270ab52b59ba55b492d446c51b28d1ed7f839514"; + }; + doCheck = true; + propagatedBuildInputs = [ + setuptools + pyyaml + whitenoise + gunicorn + proper-cli + multipart + jinja2 + ]; + }; + my_python = python.withPackages (ps: [clay]); + in{ + clay = clay; + my_python = my_python; + default = stdenv.mkDerivation { + name = "milliways"; + unpackPhase = ""; + src = ./.; + buildPhase = '' + ${clay}/bin/clay build source + ''; + installPhase = '' + cp source/build/ $out/ -r + ''; + }; + }); + + devShells = forAllSystems (system: { + default = pkgs.${system}.mkShellNoCC { + packages = [ + (pkgs.${system}.python3.withPackages (ps: [self.packages.${system}.clay])) + ]; + }; + }); + }; +}