Commit 1c3477b1 authored by Patrick Hobusch's avatar Patrick Hobusch
Browse files

atlassian-plugin-sdk: init at 9.1.1

parent a0662b93
Loading
Loading
Loading
Loading
+88 −0
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchurl,
  makeWrapper,
  jdk11,
  atlassian-plugin-sdk,
  testers,
  writeShellScript,
  common-updater-scripts,
  curl,
  jq,
  yq,
}:

let
  mavenGroupIdUrl = "https://packages.atlassian.com/maven/public/com/atlassian/amps";

in
stdenv.mkDerivation rec {
  pname = "atlassian-plugin-sdk";
  version = "9.1.1";

  src = fetchurl {
    url = "${mavenGroupIdUrl}/atlassian-plugin-sdk/${version}/atlassian-plugin-sdk-${version}.tar.gz";
    hash = "sha256-sEAe1eif9qXvIOu8RfZ4MWngEO5yCjU74g4Crd85J3Y=";
  };

  nativeBuildInputs = [ makeWrapper ];
  buildInputs = [ jdk11 ];

  unpackPhase = "tar -xzf $src";

  installPhase = ''
    runHook preInstall

    mkdir -p $out
    cp -r atlassian-plugin-sdk-${version}/* $out
    rm $out/bin/*.bat

    for file in "$out"/bin/*; do
      wrapProgram $file --set JAVA_HOME "${jdk11}"
    done

    runHook postInstall
  '';

  passthru = {
    tests.version = testers.testVersion {
      package = atlassian-plugin-sdk;
      command = "atlas-version";
      version = "atlassian-plugin-sdk-${version}";
    };

    updateScript = writeShellScript "update-atlassian-plugin-sdk" ''
      set -o errexit
      export PATH="${
        lib.makeBinPath [
          curl
          jq
          yq
          common-updater-scripts
        ]
      }:$PATH"

      NEW_VERSION=$(curl -s ${mavenGroupIdUrl}/atlassian-plugin-sdk/maven-metadata.xml | xq -r '.metadata.versioning.latest')

      if [[ "${version}" = "$NEW_VERSION" ]]; then
          echo "The new version same as the old version."
          exit 0
      fi

      DOWNLOAD_URL="${mavenGroupIdUrl}/atlassian-plugin-sdk/${version}/atlassian-plugin-sdk-$NEW_VERSION.tar.gz"
      NIX_HASH=$(nix hash to-sri sha256:$(nix-prefetch-url $DOWNLOAD_URL))

      update-source-version "atlassian-plugin-sdk" "$NEW_VERSION" "$NIX_HASH" "$DOWNLOAD_URL"
    '';
  };

  meta = with lib; {
    description = "Atlassian Plugin SDK";
    homepage = "https://developer.atlassian.com/server/framework/atlassian-sdk/";
    license = licenses.asl20;
    maintainers = with maintainers; [ pathob ];
    platforms = platforms.linux;
    mainProgram = "atlas-mvn";
  };
}