# nix files are built using node2nix -i node-packages.json
allModules = lib.attrsets.genAttrs moduleNames
(name: (callPackage (./modules + "/${name}/node-packages.nix") { inherit nodeEnv; }).${name});
- toPassthru = pkg: {
- inherit varDir allModules nodejs;
+ toPassthru = pkg: moduleNames: {
+ inherit varDir allModules nodejs moduleNames;
withModules = withModules pkg;
};
withModules = pkg: toModules:
ln -s ${varDir}/ep_initialized/${n.packageName} $out/node_modules/${n.packageName}/.ep_initialized
fi
'';
+ modulesNames = map (n: n.packageName) modules;
newEtherpad = pkg.overrideAttrs(old: {
installPhase = old.installPhase + "\n" + builtins.concatStringsSep "\n" (map toInstallModule modules);
- passthru = toPassthru newEtherpad;
+ passthru = toPassthru newEtherpad moduleNames;
});
in newEtherpad;
# built using node2nix -l package-lock.json
package = stdenv.mkDerivation rec {
name = "etherpad-lite-${src.version}";
src = node-environment;
+ version = src.version;
installPhase = ''
mkdir -p $out
mkdir $out/node_modules
chmod u+w $out/src/static/js/
ln -s ../src $out/node_modules/ep_etherpad-lite
'';
- passthru = toPassthru package;
+ passthru = toPassthru package [];
};
in package