]>
Commit | Line | Data |
---|---|---|
1 | { pkgs ? import <nixpkgs> {} }: | |
2 | let | |
3 | odoo_version = "14.0"; | |
4 | python_version = "3.7"; | |
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 | grep -v "^#" | 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 | # Add mock -- since 14.0 | |
50 | # add openupgradelib (for openupgrade) | |
51 | poetry add $requirements mock openupgradelib | |
52 | } | |
53 | ''; | |
54 | } |