diff --git a/pkgs/by-name/ti/tideways-daemon/package.nix b/pkgs/by-name/ti/tideways-daemon/package.nix new file mode 100644 index 000000000000..0a76c2dba528 --- /dev/null +++ b/pkgs/by-name/ti/tideways-daemon/package.nix @@ -0,0 +1,75 @@ +{ + stdenvNoCC, + lib, + fetchurl, + curl, + common-updater-scripts, + writeShellApplication, + gnugrep, +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "tideways-daemon"; + version = "1.9.18"; + + src = + finalAttrs.passthru.sources.${stdenvNoCC.hostPlatform.system} + or (throw "Unsupported platform for tideways-cli: ${stdenvNoCC.hostPlatform.system}"); + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp tideways-daemon $out/bin/tideways-daemon + chmod +x $out/bin/tideways-daemon + runHook postInstall + ''; + + passthru = { + sources = { + "x86_64-linux" = fetchurl { + url = "https://tideways.s3.amazonaws.com/daemon/${finalAttrs.version}/tideways-daemon_linux_amd64-${finalAttrs.version}.tar.gz"; + hash = "sha256-CFVHD2CfY1yOP621PzkflvapCrIuqY0rtTgm20xW41E="; + }; + "aarch64-linux" = fetchurl { + url = "https://tideways.s3.amazonaws.com/daemon/${finalAttrs.version}/tideways-daemon_linux_aarch64-${finalAttrs.version}.tar.gz"; + hash = "sha256-59quxF5rClfw8xd8mT2jU1/DVatrZyJw7Rj6pikKXF0="; + }; + "aarch64-darwin" = fetchurl { + url = "https://tideways.s3.amazonaws.com/daemon/${finalAttrs.version}/tideways-daemon_macos_arm64-${finalAttrs.version}.tar.gz"; + hash = "sha256-4h7Vn9s8Y63M1BnzwjcxSV8ydRqhNeJnFvG9Cs1Cq8Q="; + }; + }; + updateScript = "${ + writeShellApplication { + name = "update-tideways-daemon"; + runtimeInputs = [ + curl + gnugrep + common-updater-scripts + ]; + text = '' + NEW_VERSION=$(curl --fail -L -s https://tideways.com/profiler/downloads | grep -E 'https://tideways.s3.amazonaws.com/daemon/([0-9]+\.[0-9]+\.[0-9]+)/tideways-daemon_linux_amd64-\1.tar.gz' | grep -oP 'daemon/\K[0-9]+\.[0-9]+\.[0-9]+') + + if [[ "${finalAttrs.version}" = "$NEW_VERSION" ]]; then + echo "The new version same as the old version." + exit 0 + fi + + for platform in ${lib.escapeShellArgs finalAttrs.meta.platforms}; do + update-source-version "tideways-daemon" "$NEW_VERSION" --ignore-same-version --source-key="sources.$platform" + done + ''; + } + }/bin/update-tideways-daemon"; + }; + + meta = with lib; { + description = "Tideways Daemon"; + homepage = "https://tideways.com/"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + mainProgram = "tideways-daemon"; + license = licenses.unfree; + maintainers = with maintainers; [ shyim ]; + platforms = lib.attrNames finalAttrs.passthru.sources; + }; +})