--- /dev/null
+{ pkgs ? import <nixpkgs> {} }:
+
+let
+ gems = pkgs.bundlerEnv {
+ name = "openfoodnetwork";
+ gemfile = ./Gemfile;
+ lockfile = ./Gemfile.lock;
+ gemset = import ./gemset.nix;
+ gemConfig = pkgs.defaultGemConfig // {
+ libv8-node = attrs: {
+ dontBuild = false;
+ postPatch = let
+ noopScript = pkgs.writeShellScript "noop" "exit 0";
+ linkFiles = pkgs.writeShellScript "link-files" ''
+ cd ../..
+
+ mkdir -p vendor/v8/out.gn/libv8/obj/
+ ln -s "${pkgs.v8}/lib/libv8.a" vendor/v8/out.gn/libv8/obj/libv8_monolith.a
+
+ ln -s ${pkgs.v8}/include vendor/v8/include
+
+ mkdir -p ext/libv8-node
+ echo '--- !ruby/object:Libv8::Node::Location::Vendor {}' >ext/libv8-node/.location.yml
+ '';
+ in ''
+ cp ${noopScript} libexec/build-libv8
+ cp ${noopScript} libexec/build-monolith
+ cp ${noopScript} libexec/download-node
+ cp ${noopScript} libexec/extract-node
+ cp ${linkFiles} libexec/inject-libv8
+ '';
+ };
+ };
+ };
+in
+ pkgs.stdenv.mkDerivation {
+ name = "openfoodnetwork";
+ inherit
+ }