|
| 1 | +{ |
| 2 | + stdenvNoCC, |
| 3 | + lib, |
| 4 | + fetchurl, |
| 5 | + autoPatchelfHook, |
| 6 | + php, |
| 7 | + writeShellApplication, |
| 8 | + curl, |
| 9 | + gnugrep, |
| 10 | + common-updater-scripts, |
| 11 | +}: |
| 12 | + |
| 13 | +let |
| 14 | + soFile = |
| 15 | + { |
| 16 | + "8.0" = "tideways-php-8.0.so"; |
| 17 | + "8.1" = "tideways-php-8.1.so"; |
| 18 | + "8.2" = "tideways-php-8.2.so"; |
| 19 | + "8.3" = "tideways-php-8.3.so"; |
| 20 | + } |
| 21 | + .${lib.versions.majorMinor php.version} or (throw "Unsupported PHP version."); |
| 22 | +in |
| 23 | +stdenvNoCC.mkDerivation (finalAttrs: { |
| 24 | + pname = "tideways-php"; |
| 25 | + extensionName = "tideways"; |
| 26 | + version = "5.13.0"; |
| 27 | + |
| 28 | + src = |
| 29 | + finalAttrs.passthru.sources.${stdenvNoCC.hostPlatform.system} |
| 30 | + or (throw "Unsupported platform for tideways-php: ${stdenvNoCC.hostPlatform.system}"); |
| 31 | + |
| 32 | + nativeBuildInputs = lib.optionals stdenvNoCC.isLinux [ |
| 33 | + autoPatchelfHook |
| 34 | + ]; |
| 35 | + |
| 36 | + installPhase = '' |
| 37 | + runHook preInstall |
| 38 | + install -D ${soFile} $out/lib/php/extensions/tideways.so |
| 39 | + runHook postInstall |
| 40 | + ''; |
| 41 | + |
| 42 | + passthru = { |
| 43 | + sources = { |
| 44 | + "x86_64-linux" = fetchurl { |
| 45 | + url = "https://s3-eu-west-1.amazonaws.com/tideways/extension/${finalAttrs.version}/tideways-php-${finalAttrs.version}-x86_64.tar.gz"; |
| 46 | + hash = "sha256-HiH7EjAOqHIYaIRlp/cemhU+QX9Q66ZX8RpX1qcctZ0="; |
| 47 | + }; |
| 48 | + "aarch64-linux" = fetchurl { |
| 49 | + url = "https://s3-eu-west-1.amazonaws.com/tideways/extension/${finalAttrs.version}/tideways-php-${finalAttrs.version}-arm64.tar.gz"; |
| 50 | + hash = "sha256-kntNr8KMrOBK2ZZT/EMTR7MCuRt3rJAqhpt5B0m5qVM="; |
| 51 | + }; |
| 52 | + "aarch64-darwin" = fetchurl { |
| 53 | + url = "https://s3-eu-west-1.amazonaws.com/tideways/extension/${finalAttrs.version}/tideways-php-${finalAttrs.version}-macos-arm.tar.gz"; |
| 54 | + hash = "sha256-zNVBTXKwCRLKmDlEUUUpP7feB/n2fMevEuKZrgdyAkw="; |
| 55 | + }; |
| 56 | + }; |
| 57 | + |
| 58 | + updateScript = "${ |
| 59 | + writeShellApplication { |
| 60 | + name = "update-tideways-probe"; |
| 61 | + runtimeInputs = [ |
| 62 | + curl |
| 63 | + gnugrep |
| 64 | + common-updater-scripts |
| 65 | + ]; |
| 66 | + text = '' |
| 67 | + NEW_VERSION=$(curl --fail -L https://tideways.com/profiler/downloads | grep -E 'https://tideways.s3.amazonaws.com/extension/[0-9]+\.[0-9]+\.[0-9]+/tideways-php-[0-9]+\.[0-9]+\.[0-9]+-x86_64.tar.gz' | grep -oP 'extension/\K[0-9]+\.[0-9]+\.[0-9]+') |
| 68 | +
|
| 69 | + if [[ "${finalAttrs.version}" = "$NEW_VERSION" ]]; then |
| 70 | + echo "The new version same as the old version." |
| 71 | + exit 0 |
| 72 | + fi |
| 73 | +
|
| 74 | + for platform in ${lib.escapeShellArgs finalAttrs.meta.platforms}; do |
| 75 | + update-source-version "php82Extensions.tideways" "$NEW_VERSION" --ignore-same-version --source-key="sources.$platform" |
| 76 | + done |
| 77 | + ''; |
| 78 | + } |
| 79 | + }/bin/update-tideways-probe"; |
| 80 | + }; |
| 81 | + |
| 82 | + meta = with lib; { |
| 83 | + description = "Tideways PHP Probe"; |
| 84 | + homepage = "https://tideways.com/"; |
| 85 | + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; |
| 86 | + license = licenses.unfree; |
| 87 | + maintainers = with maintainers; [ shyim ]; |
| 88 | + platforms = lib.attrNames finalAttrs.passthru.sources; |
| 89 | + }; |
| 90 | +}) |
0 commit comments