depot/third_party/nixpkgs/pkgs/development/web/insomnia/default.nix
Default email f34ce41345 Project import generated by Copybara.
GitOrigin-RevId: b73c2221a46c13557b1b3be9c2070cc42cf01eb3
2024-07-27 08:49:29 +02:00

75 lines
2.4 KiB
Nix

{
lib,
stdenv,
fetchurl,
appimageTools
}:
let
pname = "insomnia";
version = "9.0.0";
src = fetchurl {
x86_64-darwin = {
url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.dmg";
hash = "sha256-QIArPdThQcNTUgrXpWP8JHaZfrZ/6ztekIvzFdoWjsY=";
};
x86_64-linux = {
url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.AppImage";
hash = "sha256-2UiqopYmNxnDcIqQMn/H89ugvOtTWkHH4LrmKkQErSs=";
};
}.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
meta = with lib; {
homepage = "https://insomnia.rest";
description = " The open-source, cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC. With Cloud, Local and Git storage.";
mainProgram = "insomnia";
changelog = "https://github.com/Kong/insomnia/releases/tag/core@${version}";
license = licenses.asl20;
platforms = [ "x86_64-linux" "x86_64-darwin" ];
maintainers = with maintainers; [ markus1189 kashw2 DataHearth ];
};
in
if stdenv.isDarwin then stdenv.mkDerivation {
inherit pname version src meta;
sourceRoot = ".";
unpackCmd = ''
echo "Creating temp directory"
mnt=$(TMPDIR=/tmp mktemp -d -t nix-XXXXXXXXXX)
function finish {
echo "Ejecting temp directory"
/usr/bin/hdiutil detach $mnt -force
rm -rf $mnt
}
# Detach volume when receiving SIG "0"
trap finish EXIT
# Mount DMG file
echo "Mounting DMG file into \"$mnt\""
/usr/bin/hdiutil attach -nobrowse -mountpoint $mnt $curSrc
# Copy content to local dir for later use
echo 'Copying extracted content into "sourceRoot"'
cp -a $mnt/Insomnia.app $PWD/
'';
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications"
mv Insomnia.app $out/Applications/
runHook postInstall
'';
} else appimageTools.wrapType2 {
inherit pname version src meta;
extraInstallCommands = let
appimageContents = appimageTools.extract {
inherit pname version src;
};
in ''
# Install XDG Desktop file and its icon
install -Dm444 ${appimageContents}/insomnia.desktop -t $out/share/applications
install -Dm444 ${appimageContents}/insomnia.png -t $out/share/pixmaps
# Replace wrong exec statement in XDG Desktop file
substituteInPlace $out/share/applications/insomnia.desktop \
--replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=insomnia'
'';
}