]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - flakes/private/buildbot/buildslist/default.nix
Squash changes containing private information
[perso/Immae/Config/Nix.git] / flakes / private / buildbot / buildslist / default.nix
diff --git a/flakes/private/buildbot/buildslist/default.nix b/flakes/private/buildbot/buildslist/default.nix
new file mode 100644 (file)
index 0000000..7f72503
--- /dev/null
@@ -0,0 +1,64 @@
+{ stdenv, runCommand, writeScriptBin, buildBowerComponents, pythonPackages, fetchurl, jq, yarn, nodejs-10_x, yarn2nix-moretea, buildslist_src }:
+let
+  yarn2nix-moretea' = yarn2nix-moretea.override({
+    yarn = yarn.override({ nodejs = nodejs-10_x; });
+    nodejs = nodejs-10_x;
+  });
+  packagejson = runCommand "package.json" { buildInputs = [ jq ]; } ''
+    cat ${buildslist_src}/package.json | jq -r '.version = "${pythonPackages.buildbot-pkg.version}"|.license= "MIT"' > $out
+    '';
+  nodeHeaders = fetchurl {
+    url = "https://nodejs.org/download/release/v${nodejs-10_x.version}/node-v${nodejs-10_x.version}-headers.tar.gz";
+    sha256 = "sha256-LEk6BOW/vwdUXGAialDOoyFIkZ81k6ADy6MhMfRiE5Y=";
+  };
+  buildslist_yarn = yarn2nix-moretea'.mkYarnModules rec {
+    name = "buildslist-yarn-modules";
+    pname = name;
+    inherit (pythonPackages.buildbot-pkg) version;
+    packageJSON = packagejson;
+    yarnLock = "${buildslist_src}/yarn.lock";
+    yarnNix = ./yarn-packages.nix;
+    pkgConfig = {
+      node-sass = {
+        buildInputs = with yarn2nix-moretea'.pkgs; [ libsass python2 ];
+        postInstall =
+          ''
+            node scripts/build.js --tarball=${nodeHeaders}
+          '';
+      };
+    };
+  };
+  buildslist_bower = buildBowerComponents {
+    name = "buildslist";
+    generated = ./bower.nix;
+    src = "${buildslist_src}/guanlecoja/";
+  };
+  # the buildbot-pkg calls yarn and screws up everything...
+  fakeYarn = writeScriptBin "yarn" ''
+    #!${stdenv.shell}
+    if [ "$1" = "--version" ]; then
+      echo "1.17"
+    fi
+    '';
+in
+pythonPackages.buildPythonPackage rec {
+  pname = "buildbot-buildslist";
+  inherit (pythonPackages.buildbot-pkg) version;
+
+  preConfigure = ''
+    export HOME=$PWD
+    ln -s ${buildslist_yarn}/node_modules .
+    cp -a ${buildslist_bower}/bower_components ./libs
+    PATH=${buildslist_yarn}/node_modules/.bin:$PATH
+    chmod -R u+w libs
+    '';
+  propagatedBuildInputs = with pythonPackages; [
+    (klein.overridePythonAttrs(old: { checkPhase = ""; }))
+    buildbot-pkg
+  ];
+  nativeBuildInputs = [ fakeYarn nodejs-10_x ];
+  buildInputs = [ buildslist_yarn buildslist_bower ];
+
+  doCheck = false;
+  src = buildslist_src;
+}