nixpkgs/pkgs/tools/misc/flexoptix-app/default.nix
Janne Heß 9aa05d18b7
flexoptix-app: 5.9.0 -> 5.11.0 and fixes
This update is required because the autoupdater prevents the app from
running without being updated (which is not possible because it is a
store path).
So this updates the app and patches out the updater (essentially it
never thinks it needs to update, even though it prints on the command
line that it should).

Also fix the desktop item.
2021-08-26 00:19:25 +02:00

59 lines
2.1 KiB
Nix

{ lib, appimageTools, fetchurl, nodePackages }: let
pname = "flexoptix-app";
version = "5.11.0";
name = "${pname}-${version}";
src = fetchurl {
name = "${name}.AppImage";
url = "https://flexbox.reconfigure.me/download/electron/linux/x64/FLEXOPTIX%20App.${version}.AppImage";
sha256 = "sha256:1hzdb2fbkwpsf0d3ws4z32blk6549jwhf1lrlqmcxhzqfvkr4gin";
};
udevRules = fetchurl {
url = "https://www.flexoptix.net/skin/udev_rules/99-tprogrammer.rules";
sha256 = "0mr1bhgvavq1ax4206z1vr2y64s3r676w9jjl9ysziklbrsvk5rr";
};
appimageContents = (appimageTools.extract { inherit name src; }).overrideAttrs (oA: {
buildCommand = ''
${oA.buildCommand}
# Get rid of the autoupdater
${nodePackages.asar}/bin/asar extract $out/resources/app.asar app
sed -i 's/async isUpdateAvailable.*/async isUpdateAvailable(updateInfo) { return false;/g' app/node_modules/electron-updater/out/AppUpdater.js
${nodePackages.asar}/bin/asar pack app $out/resources/app.asar
'';
});
in appimageTools.wrapAppImage {
inherit name;
src = appimageContents;
multiPkgs = null; # no 32bit needed
extraPkgs = { pkgs, ... }@args: [
pkgs.hidapi
] ++ appimageTools.defaultFhsEnvArgs.multiPkgs args;
extraInstallCommands = ''
# Add desktop convencience stuff
mv $out/bin/{${name},${pname}}
install -Dm444 ${appimageContents}/flexoptix-app.desktop -t $out/share/applications
install -Dm444 ${appimageContents}/flexoptix-app.png -t $out/share/pixmaps
substituteInPlace $out/share/applications/flexoptix-app.desktop \
--replace 'Exec=AppRun' "Exec=$out/bin/${pname} --"
# Add udev rules
mkdir -p $out/lib/udev/rules.d
ln -s ${udevRules} $out/lib/udev/rules.d/99-tprogrammer.rules
'';
meta = {
description = "Configure FLEXOPTIX Universal Transcievers in seconds";
homepage = "https://www.flexoptix.net";
changelog = "https://www.flexoptix.net/en/flexoptix-app/?os=linux#flexapp__modal__changelog";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ das_j ];
platforms = [ "x86_64-linux" ];
};
}