Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

64 lines
1.4 KiB
Nix
Raw Permalink Normal View History

2024-08-27 23:59:57 +09:00
{
fetchFromGitHub,
fetchYarnDeps,
lib,
mqttx-cli,
nodejs,
stdenv,
testers,
yarnConfigHook,
yarnInstallHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "mqttx-cli";
2025-03-31 11:48:17 +09:00
version = "1.11.1";
2024-08-27 23:59:57 +09:00
src = fetchFromGitHub {
owner = "emqx";
repo = "MQTTX";
tag = "v${finalAttrs.version}";
2025-03-31 11:48:17 +09:00
hash = "sha256-kxK/c1tOwK9hCxX19um0z1MWBZQOwADYEh4xEqJNgWI=";
2024-08-27 23:59:57 +09:00
};
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/cli/yarn.lock";
hash = "sha256-vwPwSE6adxM1gkdsJBq3LH2eXze9yXADvnM90LsKjjo=";
};
nativeBuildInputs = [
nodejs
yarnConfigHook
yarnInstallHook
];
preConfigure = ''
cd cli
'';
# Using custom build script instead of `yarnBuildHook`
# because it needs `--ignore-engines` before `build`.
buildPhase = ''
runHook preBuild
yarn --offline --ignore-engines build
runHook postBuild
'';
postInstall = ''
# rename binary so it does not conflict with the desktop app
mv $out/bin/mqttx $out/bin/mqttx-cli
'';
passthru.tests.version = testers.testVersion { package = mqttx-cli; };
meta = {
description = "MQTTX Command Line Tools";
homepage = "https://mqttx.app/";
changelog = "https://mqttx.app/changelogs/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ pineapplehunter ];
platforms = lib.platforms.all;
mainProgram = "mqttx-cli";
};
})