9e0f86131f
Airfield suffered from loose version constraints which caused severe version (and API) conflicts between its dependencies and transitive ones. Furthermore the `npm2nix` packaging is deprecated and needed to be replaced by `node2nix`. see #31032
70 lines
1.5 KiB
Nix
70 lines
1.5 KiB
Nix
{ stdenv, fetchFromGitHub, callPackage, python, utillinux
|
|
, pkgs, makeWrapper, buildEnv
|
|
, nodejs
|
|
}:
|
|
|
|
let
|
|
nodePackages = import ./node.nix {
|
|
inherit pkgs;
|
|
system = stdenv.system;
|
|
};
|
|
|
|
runtimeEnv = buildEnv {
|
|
name = "airfield-runtime";
|
|
paths = with nodePackages; [
|
|
nodePackages."express-3.0.5" nodePackages."swig-0.14.0"
|
|
nodePackages."consolidate-0.10.0" redis connect-redis
|
|
async request
|
|
];
|
|
};
|
|
|
|
name = "airfield-${version}";
|
|
version = "2015-01-04";
|
|
|
|
src = stdenv.mkDerivation {
|
|
name = "${name}-src";
|
|
inherit version;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "emblica";
|
|
repo = "airfield";
|
|
rev = "f021b19a35be3db9be7780318860f3b528c48641";
|
|
sha256 = "1xk69x89kgg98hm7c2ysyfmg7pkvgkpg4wym6v5cmdkdid08fsgs";
|
|
};
|
|
|
|
dontBuild = true;
|
|
|
|
installPhase = ''
|
|
mkdir $out
|
|
cp -R . $out
|
|
'';
|
|
};
|
|
in stdenv.mkDerivation {
|
|
inherit name version src;
|
|
|
|
buildInputs = [ makeWrapper nodejs ];
|
|
|
|
dontBuild = true;
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
cat >$out/bin/airfield <<EOF
|
|
#!${stdenv.shell}/bin/sh
|
|
${nodejs}/bin/node ${src}/airfield.js
|
|
EOF
|
|
'';
|
|
|
|
postFixup = ''
|
|
chmod +x $out/bin/airfield
|
|
wrapProgram $out/bin/airfield \
|
|
--set NODE_PATH "${runtimeEnv}/lib/node_modules"
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "A web-interface for hipache-proxy";
|
|
license = licenses.mit;
|
|
homepage = https://github.com/emblica/airfield;
|
|
maintainers = with maintainers; [ offline ma27 ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|