-
Notifications
You must be signed in to change notification settings - Fork 16
/
setup.nix
77 lines (74 loc) · 2.75 KB
/
setup.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
{ pkgs ? import (builtins.fetchTarball {
# branches nixos-19.09
url = "https://github.com/NixOS/nixpkgs-channels/archive/c75de8bc12cc7e713206199e5ca30b224e295041.tar.gz";
sha256 = "1awipcjfvs354spzj2la1nzmi9rh2ci2mdapzf4kkabf58ilra6x";
}) {}
, setup ? import (builtins.fetchTarball {
# tags v3.4.0
url = "https://github.com/nix-community/setup.nix/archive/60ea39a442cbcb446dcc53be395c90764a7019bc.tar.gz";
sha256 = "0rk5flzwfgw5wwp4hc9lmihc499shq82gbswsz8vb9fdsbnv12h1";
})
, python ? "python36"
, robotframework ? "rf32"
, pythonPackages ? builtins.getAttr (python + "Packages") pkgs
, requirements ? { pkgs, fetchurl, fetchgit, fetchhg }:
let generated = import (./. + "/requirements-${python}-${robotframework}.nix")
{ inherit pkgs fetchurl fetchgit fetchhg; };
in self: super: generated self super // (with pythonPackages; {
"matplotlib" = buildPythonPackage {
inherit (matplotlib) pname version src;
};
})
}:
let
kernel_js = ./src/robotkernel/resources/kernel/kernel.js;
overrides = self: super: {
"fancycompleter" = super."fancycompleter".overridePythonAttrs(old: {
nativeBuildInputs = [
self."setuptools-scm"
];
});
"json5" = super."json5".overridePythonAttrs(old: {
postInstall = "rm -r $out/${self.python.sitePackages}/tests";
});
"notebook" = super."notebook".overridePythonAttrs(old: {
postInstall = ''
mkdir -p $out/${pythonPackages.python.sitePackages}/notebook/static/components/codemirror/mode/robotframework
cp ${kernel_js} $out/${pythonPackages.python.sitePackages}/notebook/static/components/codemirror/mode/robotframework/robotframework.js
'';
});
"pdbpp" = super."pdbpp".overridePythonAttrs(old: {
nativeBuildInputs = [
self."setuptools-scm"
];
});
"robotframework-jupyterlibrary" = super."robotframework-jupyterlibrary".overridePythonAttrs(old: {
src = builtins.fetchurl { # master 2019-12-05
url = "https://github.com/robots-from-jupyter/robotframework-jupyterlibrary/archive/6a9a8a2c844bf6f435ed806216afe501f0dd0ca2.tar.gz";
sha256 = "b750286b3d13411002f10094884b1963b54f45901dfa2fcd40703bd23c85f455";
};
format = "setuptools";
});
"RESTinstance" = super."RESTinstance".overridePythonAttrs(old: {
postInstall = "rm -f $out/bin/robot";
});
}; in
let self = setup {
inherit pkgs pythonPackages overrides;
src = ./.;
requirements = requirements;
propagatedBuildInputs = with pkgs; [
geckodriver
firefox
];
buildInputs = with pkgs; [
pandoc # required by nbsphinx
];
}; in self // {
shell = self.shell.overridePythonAttrs(old: {
postShellHook = ''
export JUPYTER_PATH=${self.install}/share/jupyter
export JUPYTERLAB_DIR=${self.pythonPackages.jupyterlab}/share/jupyter/lab
'';
});
}