]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - modules/private/websites/nicecoop/odoo/shell_generate_poetry.nix
Nicecoop installation
[perso/Immae/Config/Nix.git] / modules / private / websites / nicecoop / odoo / shell_generate_poetry.nix
1 { pkgs ? import <nixpkgs> {} }:
2 let
3 odoo_version = "13.0";
4 python_version = "3.6";
5 pyproject = pkgs.writeText "pyproject.toml" ''
6 [tool.poetry]
7 name = "Odoo"
8 version = "${odoo_version}"
9 description = "Odoo is a suite of web based open source business apps."
10 authors = ["Odoo SA"]
11
12 [tool.poetry.dependencies]
13 python = "^${python_version}"
14
15 [tool.poetry.dev-dependencies]
16
17 [build-system]
18 requires = ["poetry-core>=1.0.0"]
19 build-backend = "poetry.core.masonry.api"
20 '';
21 newPoetry = pkgs.poetry.override { python = pkgs.python36; };
22 in
23 pkgs.mkShell {
24 buildInputs = [ pkgs.perl pkgs.gcc pkgs.libjpeg pkgs.libxslt pkgs.pkg-config pkgs.postgresql_11 pkgs.cyrus_sasl pkgs.openldap pkgs.zlib pkgs.file pkgs.libxml2 newPoetry ];
25 shellHook = ''
26 NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${pkgs.cyrus_sasl.dev}/include/sasl -isystem ${pkgs.libxml2.dev}/include/libxml2/"
27 check_valid() {
28 expression="$1"
29 expression=''${expression/sys_platform/\$sys_platform}
30 expression=''${expression/python_version/\$python_version}
31 expression=''${expression/"== '"/"eq '"}
32 expression=''${expression/"!= '"/"ne '"}
33 #echo "my \$python_version='${python_version}' ; my \$sys_platform='linux'; exit !($expression)"
34 perl -e "my \$python_version='${python_version}' ; my \$sys_platform='linux'; exit !($expression)"
35 }
36 buildPoetry() {
37 cat "${pyproject}" > pyproject.toml
38 rm -f poetry.lock
39
40 requirements=$(cat requirements.txt | while read i; do
41 if echo "$i" | grep -q ";"; then
42 a="$(echo $i | sed -e "s/.*; *//")"
43 check_valid "$a" && echo "$i" | sed -e "s/ *;.*//";
44 else
45 echo "$i"
46 fi
47 done)
48
49 poetry add $requirements
50 }
51 '';
52 }