mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-05 09:58:50 +03:00
replay-io: init at 20220516-372662e7c79d-a9c63f38ea9b, replay-node-cli: init at 20220506-096c12cb47eb-a1d05f422dff (#166813)
* replay-io: init at 20220401-29dd94a55ca4 * init replay-node-cli at 20220404-dfd3123c41e3-4e44aca4c7ee * replay-io: init at 20220422-1d46e798ffbf-3eecf49b757b, replay-node-cli: init at 0.1.7-20220422-a26b4562ebf7-3eecf49b757b * fixup * apply feedback * replay-io: init at 20220516-372662e7c79d-a9c63f38ea9b, replay-node-cli: init at 20220506-096c12cb47eb-a1d05f422dff * use `stripRoot: false`
This commit is contained in:
parent
958fcfb4fa
commit
f51cb36f2c
141
pkgs/development/tools/replay-io/default.nix
Normal file
141
pkgs/development/tools/replay-io/default.nix
Normal file
@ -0,0 +1,141 @@
|
||||
{ stdenv, lib, fetchurl, fetchFromGitHub, autoPatchelfHook, makeWrapper, libcxx
|
||||
, libX11, libXt, libXdamage, glib, gtk3, dbus-glib, openssl, nodejs, zlib
|
||||
, fetchzip }:
|
||||
let metadata = lib.importJSON ./meta.json;
|
||||
in rec {
|
||||
replay-recordreplay = stdenv.mkDerivation rec {
|
||||
pname = "replay-recordreplay";
|
||||
version = builtins.head (builtins.match ".*/linux-recordreplay-(.*).tgz"
|
||||
metadata.recordreplay.url);
|
||||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
buildInputs = [ stdenv.cc.cc.lib openssl zlib ];
|
||||
|
||||
src = (fetchzip metadata.recordreplay);
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
cp linux-recordreplay.so $out
|
||||
runHook postInstall
|
||||
'';
|
||||
meta = with lib; {
|
||||
description = "RecordReplay internal recording library";
|
||||
homepage = "https://www.replay.io/";
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with maintainers; [ phryneas ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
};
|
||||
|
||||
replay-io = stdenv.mkDerivation rec {
|
||||
pname = "replay-io";
|
||||
version = builtins.head
|
||||
(builtins.match ".*/linux-gecko-(.*).tar.bz2" metadata.replay.url);
|
||||
srcs = fetchurl metadata.replay;
|
||||
nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
|
||||
buildInputs = [ dbus-glib glib gtk3 libX11 libXdamage libXt ];
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/opt/replay-io
|
||||
cp -r * $out/opt/replay-io
|
||||
mkdir $out/bin
|
||||
makeWrapper $out/opt/replay-io/replay \
|
||||
$out/bin/replay-io \
|
||||
--set "RECORD_REPLAY_DRIVER" "${replay-recordreplay}"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = with lib; {
|
||||
description = "The Time Travel Debugger for Web Development";
|
||||
longDescription = ''
|
||||
Replay allows you to record and replay web applications with familiar browser dev tools.
|
||||
You can access the browser DevTools at any point of the recording, adding new logger
|
||||
statements and inspecting the status of the DOM, variables and the current call stack.
|
||||
Your recordings can be shared with other users for collaborative debugging.
|
||||
'';
|
||||
homepage = "https://www.replay.io/";
|
||||
downloadPage = "https://www.replay.io/";
|
||||
mainProgram = "replay-io";
|
||||
license = lib.licenses.mpl20;
|
||||
maintainers = with maintainers; [ phryneas ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
};
|
||||
|
||||
replay-node = stdenv.mkDerivation rec {
|
||||
pname = "replay-node";
|
||||
version = builtins.head
|
||||
(builtins.match ".*/linux-node-(.*)" metadata.replay-node.url);
|
||||
nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
|
||||
buildInputs = [ stdenv.cc.cc.lib ];
|
||||
|
||||
src = (fetchurl metadata.replay-node);
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin $out/opt/replay-node
|
||||
cp $src $out/opt/replay-node/node-unwrapped
|
||||
chmod +x $out/opt/replay-node/node-unwrapped
|
||||
|
||||
makeWrapper $out/opt/replay-node/node-unwrapped \
|
||||
$out/opt/replay-node/node \
|
||||
--set "RECORD_REPLAY_DRIVER" "${replay-recordreplay}"
|
||||
|
||||
ln -s $out/opt/replay-node/node $out/bin/replay-node
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Event-driven I/O framework for the V8 JavaScript engine, patched for replay";
|
||||
homepage = "https://github.com/RecordReplay/node";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ phryneas ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "replay-node";
|
||||
};
|
||||
};
|
||||
|
||||
replay-node-cli = stdenv.mkDerivation {
|
||||
pname = "replay-node-cli";
|
||||
version = "0.1.7-" + builtins.head
|
||||
(builtins.match ".*/linux-node-(.*)" metadata.replay-node.url);
|
||||
src = fetchFromGitHub {
|
||||
owner = "RecordReplay";
|
||||
repo = "replay-node-cli";
|
||||
rev = "5269c8b8e7c5c7a9618a68f883d19c11a68be837";
|
||||
sha256 = "04d22q3dvs9vxpb9ps64pdxq9ziwgvnzdgsn6p9p0lzjagh0f5n0";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ stdenv.cc.cc.lib nodejs ];
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/opt/replay-node-cli
|
||||
cp -r * $out/opt/replay-node-cli
|
||||
makeWrapper $out/opt/replay-node-cli/bin/replay-node \
|
||||
$out/bin/replay-node \
|
||||
--prefix "PATH" ":" "${nodejs}/bin" \
|
||||
--set "RECORD_REPLAY_NODE_DIRECTORY" "${replay-node}/opt/replay-node"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "The Time Travel Debugger for Web Development - Node Command Line";
|
||||
longDescription = ''
|
||||
The Replay Node Command Line allows you to record node applications and debug them
|
||||
with familiar browser dev tools.
|
||||
You can access the browser DevTools at any point of the recording, adding new logger
|
||||
statements and inspecting the status of variables and the current call stack.
|
||||
Your recordings can be shared with other users for collaborative debugging.
|
||||
'';
|
||||
homepage = "https://www.replay.io/";
|
||||
mainProgram = "replay-node";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with maintainers; [ phryneas ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
};
|
||||
}
|
15
pkgs/development/tools/replay-io/meta.json
Normal file
15
pkgs/development/tools/replay-io/meta.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"replay": {
|
||||
"url": "https://static.replay.io/downloads/linux-gecko-20220516-372662e7c79d-a9c63f38ea9b.tar.bz2",
|
||||
"sha256": "151k0ykd2mn722zk7n902si6llcsrqnhgjb5bs4wgn9rik9advbi"
|
||||
},
|
||||
"recordreplay": {
|
||||
"url": "https://static.replay.io/downloads/linux-recordreplay-a9c63f38ea9b.tgz",
|
||||
"sha256": "032x9wiw4jcdkn0wjgr5j3pc4parrdy5n4r8bgmfxsldg5j48hmk",
|
||||
"stripRoot": false
|
||||
},
|
||||
"replay-node": {
|
||||
"url": "https://static.replay.io/downloads/linux-node-20220506-096c12cb47eb-a1d05f422dff",
|
||||
"sha256": "1fbqlx01vp6llbvvz285brmz86jxc989v0cw6s06jk0657g87inq"
|
||||
}
|
||||
}
|
32
pkgs/development/tools/replay-io/update.sh
Executable file
32
pkgs/development/tools/replay-io/update.sh
Executable file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl jq gnused
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# e.g. linux-gecko-20220331-59d0a686993f-ffd8d6280276
|
||||
BUILD_ID=$(curl https://static.replay.io/downloads/linux-replay.json | jq .buildId -r)
|
||||
REVISION=$(echo $BUILD_ID | sed 's/^.*-//')
|
||||
NODE_BUILD_ID=$(curl https://static.replay.io/downloads/linux-replay-node.json | jq .buildId -r)
|
||||
|
||||
REPLAY_DL=https://static.replay.io/downloads/${BUILD_ID}.tar.bz2
|
||||
LIB_DL=https://static.replay.io/downloads/linux-recordreplay-${REVISION}.tgz
|
||||
NODE_DL=https://static.replay.io/downloads/${NODE_BUILD_ID}
|
||||
|
||||
|
||||
cat >"${BASH_SOURCE%/*}/meta.json" <<EOF
|
||||
{
|
||||
"replay": {
|
||||
"url": "${REPLAY_DL}",
|
||||
"sha256": "$(nix-prefetch-url --type sha256 "${REPLAY_DL}")"
|
||||
},
|
||||
"recordreplay": {
|
||||
"url": "${LIB_DL}",
|
||||
"sha256": "$(nix-prefetch-url --type sha256 --unpack "${LIB_DL}")",
|
||||
"stripRoot": false
|
||||
},
|
||||
"replay-node": {
|
||||
"url": "${NODE_DL}",
|
||||
"sha256": "$(nix-prefetch-url --type sha256 "${NODE_DL}")"
|
||||
}
|
||||
}
|
||||
EOF
|
@ -16115,6 +16115,9 @@ with pkgs;
|
||||
|
||||
replacement = callPackage ../development/tools/misc/replacement { };
|
||||
|
||||
inherit (callPackage ../development/tools/replay-io { })
|
||||
replay-io replay-node-cli;
|
||||
|
||||
retdec = callPackage ../development/tools/analysis/retdec {
|
||||
stdenv = gcc8Stdenv;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user