mirror of
https://github.com/nix-community/dream2nix.git
synced 2024-12-23 22:48:02 +03:00
74 lines
1.8 KiB
Nix
74 lines
1.8 KiB
Nix
# This example builds https://isso-comments.de. It's meant as a relatively
|
|
# simple demonstration on how to build applications consiting of a python
|
|
# backend and a javascript frontend, built with nodejs.
|
|
#
|
|
# To actually run an isso server with this, you'd also need a configuration file,
|
|
# see https://posativ.org/isso/docs/configuration/server/
|
|
{
|
|
config,
|
|
lib,
|
|
dream2nix,
|
|
...
|
|
}: let
|
|
l = lib // builtins;
|
|
in {
|
|
imports = [
|
|
dream2nix.modules.dream2nix.nodejs-package-lock
|
|
dream2nix.modules.dream2nix.nodejs-granular
|
|
dream2nix.modules.dream2nix.pip
|
|
];
|
|
|
|
name = "isso";
|
|
version = "0.13.0";
|
|
|
|
deps = {nixpkgs, ...}: {
|
|
stdenv = lib.mkForce nixpkgs.stdenv;
|
|
jq = lib.mkForce nixpkgs.jq;
|
|
fetchFromGitHub = nixpkgs.fetchFromGitHub;
|
|
};
|
|
|
|
nodejs-package-lock = {
|
|
source = config.deps.fetchFromGitHub {
|
|
owner = "posativ";
|
|
repo = config.name;
|
|
rev = "refs/tags/${config.version}";
|
|
sha256 = "sha256-kZNf7Rlb1DZtQe4dK1B283OkzQQcCX+pbvZzfL65gsA=";
|
|
};
|
|
};
|
|
|
|
mkDerivation = {
|
|
src = config.nodejs-package-lock.source;
|
|
|
|
propagatedBuildInputs = [
|
|
# isso implicitly assumes that pkg_resources, which is
|
|
# part of setuptools.
|
|
config.deps.python.pkgs.setuptools
|
|
];
|
|
};
|
|
|
|
nodejs-granular = {
|
|
installMethod = lib.mkForce "copy";
|
|
buildScript = lib.mkForce "npm run build-prod";
|
|
# runBuild = true;
|
|
# TODO: create a better interface for overrides
|
|
deps.delayed-stream."1.0.0" = {
|
|
mkDerivation.preBuildPhases = ["removeMakefilePhase"];
|
|
env.removeMakefilePhase = "rm Makefile";
|
|
};
|
|
};
|
|
|
|
buildPythonPackage = {
|
|
pythonImportsCheck = [
|
|
config.name
|
|
];
|
|
};
|
|
|
|
pip = {
|
|
pypiSnapshotDate = "2023-05-30";
|
|
requirementsList = [
|
|
"${config.name}==${config.version}"
|
|
"setuptools"
|
|
];
|
|
};
|
|
}
|