default.nix (2109B)
1 { lib, stdenv, appimageTools, fetchurl, undmg, makeWrapper }: 2 3 let 4 pname = "mqtt-explorer"; 5 version = "0.3.5"; 6 7 srcs = { 8 x86_64-linux = fetchurl { 9 url = "https://github.com/thomasnordquist/MQTT-Explorer/releases/download/v${version}/MQTT-Explorer-${version}.AppImage"; 10 hash = "sha256-Yfz42+dVIx3xwIOmYltp5e9rYka+KskvQuxJVVBgbg4="; 11 }; 12 x86_64-darwin = fetchurl { 13 url = "https://github.com/thomasnordquist/MQTT-Explorer/releases/download/v${version}/MQTT-Explorer-${version}.dmg"; 14 hash = "sha256-Cf2qgoxaNGpcaW0oA605vd5zQiZX1m54ccW8Tbe8qvU="; 15 }; 16 }; 17 src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); 18 19 appimageContents = appimageTools.extract { inherit pname version src; }; 20 21 linux = appimageTools.wrapType2 rec { 22 inherit pname version src meta; 23 24 extraInstallCommands = '' 25 mv $out/bin/${pname}-${version} $out/bin/${pname} 26 27 install -Dm444 ${appimageContents}/mqtt-explorer.desktop -t $out/share/applications 28 substituteInPlace $out/share/applications/mqtt-explorer.desktop \ 29 --replace-fail "Exec=AppRun" "Exec=$out/bin/mqtt-explorer" 30 31 install -Dm444 ${appimageContents}/mqtt-explorer.png -t $out/share/icons/hicolor/512x512/apps 32 ''; 33 }; 34 35 darwin = stdenv.mkDerivation { 36 inherit pname version src meta; 37 38 nativeBuildInputs = [ undmg makeWrapper ]; 39 40 sourceRoot = "."; 41 42 installPhase = '' 43 runHook preInstall 44 mkdir -p $out/Applications 45 mv *.app $out/Applications 46 makeWrapper $out/{Applications/MQTT\ Explorer.app/Contents/MacOS/MQTT\ Explorer,bin/mqtt-explorer} 47 runHook postInstall 48 ''; 49 }; 50 51 meta = with lib; { 52 description = "An all-round MQTT client that provides a structured topic overview"; 53 homepage = "https://mqtt-explorer.com/"; 54 sourceProvenance = with sourceTypes; [ binaryNativeCode ]; 55 license = licenses.cc-by-40; 56 maintainers = with maintainers; [ sikmir ]; 57 platforms = builtins.attrNames srcs; 58 mainProgram = "mqtt-explorer"; 59 }; 60 in 61 if stdenv.isDarwin 62 then darwin 63 else linux