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.
59 lines
2.1 KiB
Nix
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" ];
|
|
};
|
|
}
|