]> git.immae.eu Git - perso/Immae/Config/Nix.git/blame - modules/private/websites/nicecoop/odoo/shell_generate_poetry.nix
WIP upgrade
[perso/Immae/Config/Nix.git] / modules / private / websites / nicecoop / odoo / shell_generate_poetry.nix
CommitLineData
965b61c2
IB
1{ pkgs ? import <nixpkgs> {} }:
2let
ceb738de
IB
3 odoo_version = "14.0";
4 python_version = "3.7";
965b61c2
IB
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 '';
e34b3079 21 newPoetry = pkgs.poetry.override { python = pkgs.python37; };
965b61c2
IB
22in
23pkgs.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
ceb738de 40 requirements=$(cat requirements.txt | grep -v "^#" | while read i; do
965b61c2
IB
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
ceb738de
IB
49 # Add mock -- since 14.0
50 # add openupgradelib (for openupgrade)
51 poetry add $requirements mock openupgradelib
965b61c2
IB
52 }
53 '';
54}