{ buildPythonPackage, flask, flask_sqlalchemy, lib, libsass, mkYarnModules, nodejs, pkgconfig, pkgs, psycopg2, python2, python3, stdenv, flask-excel, pyexcel-xlsx, }: let src = fetchGit { url = "https://git.clerie.de/clerie/wetter.git"; ref = "master"; rev = "bb503828098717825c389fd6f450b395a02dcc6a"; }; pname = "wetter"; version = "0.0.1"; packageJSON = src + "/package.json"; yarnLock = src + "/yarn.lock"; modules = mkYarnModules { pname = "${pname}-modules"; name = "${pname}-modules-${version}"; inherit version packageJSON yarnLock; /* build native node-sass extensions */ pkgConfig.node-sass = { buildInputs = [ python2 libsass pkgconfig ]; postInstall = '' mkdir -p $HOME/.node-gyp/${nodejs.version} echo 9 > $HOME/.node-gyp/${nodejs.version}/installVersion ln -sfv ${nodejs}/include $HOME/.node-gyp/${nodejs.version} LIBSASS_EXT=auto yarn --offline run build rm build/config.gypi ''; }; }; assets = stdenv.mkDerivation { inherit src pname version; NODE_ENV = "production"; buildPhase = '' runHook preBuild ln -s ${modules}/node_modules node_modules/.bin/rollup -c runHook postBuild ''; installPhase = '' runHook preInstall cp -r wetter/static/bundle $out runHook postInstall ''; }; in buildPythonPackage rec { inherit src pname version; propagatedBuildInputs = [ flask flask_sqlalchemy psycopg2 flask-excel pyexcel-xlsx ]; postInstall = '' mkdir -p $out/${python3.sitePackages}/wetter/static cp -r ${assets} $out/${python3.sitePackages}/wetter/static/bundle cp -r wetter/templates $out/${python3.sitePackages}/wetter/templates ''; doCheck = false; }