105 lines
3.1 KiB
Nix
105 lines
3.1 KiB
Nix
{
|
|
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]))
|
|
];
|
|
};
|
|
});
|
|
};
|
|
}
|