1
0
nixfiles/pkgs/wetter/default.nix

84 lines
1.7 KiB
Nix
Raw Normal View History

2021-01-24 15:56:45 +01:00
{
buildPythonPackage,
flask,
flask_sqlalchemy,
lib,
libsass,
2022-02-26 13:15:30 +01:00
yarn2nix-moretea,
2021-01-24 15:56:45 +01:00
nodejs,
pkgconfig,
pkgs,
psycopg2,
python3,
stdenv,
flask-excel,
pyexcel-xlsx,
2021-01-24 15:56:45 +01:00
}:
let
src = fetchGit {
url = "https://git.clerie.de/clerie/wetter.git";
2021-12-12 13:35:13 +01:00
ref = "master";
2022-02-26 13:15:30 +01:00
rev = "4cfac906acd1c134c0e20bab6ef931aa4edc3530";
2021-01-24 15:56:45 +01:00
};
pname = "wetter";
version = "0.0.1";
packageJSON = src + "/package.json";
yarnLock = src + "/yarn.lock";
2022-02-26 13:15:30 +01:00
modules = yarn2nix-moretea.mkYarnModules {
2021-01-24 15:56:45 +01:00
pname = "${pname}-modules";
name = "${pname}-modules-${version}";
inherit version packageJSON yarnLock;
/* build native node-sass extensions */
pkgConfig.node-sass = {
2022-02-26 13:15:30 +01:00
buildInputs = [ python3 libsass pkgconfig ];
2021-01-24 15:56:45 +01:00
postInstall = ''
2022-02-26 13:15:30 +01:00
export npm_config_nodedir=${nodejs}
2021-01-24 15:56:45 +01:00
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
2021-01-24 15:56:45 +01:00
];
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;
2021-01-24 15:56:45 +01:00
}