diff --git a/pkgs/tools/networking/openapi-generator-cli/default.nix b/pkgs/tools/networking/openapi-generator-cli/default.nix index 1aba61de0543..b195c655c93f 100644 --- a/pkgs/tools/networking/openapi-generator-cli/default.nix +++ b/pkgs/tools/networking/openapi-generator-cli/default.nix @@ -1,6 +1,6 @@ -{ lib, stdenv, fetchurl, jre, makeWrapper }: +{ callPackage, lib, stdenv, fetchurl, jre, makeWrapper }: -stdenv.mkDerivation rec { +let this = stdenv.mkDerivation rec { version = "5.1.0"; pname = "openapi-generator-cli"; @@ -18,10 +18,14 @@ stdenv.mkDerivation rec { phases = [ "installPhase" ]; installPhase = '' + runHook preInstall + install -D "$src" "$out/share/java/${jarfilename}" makeWrapper ${jre}/bin/java $out/bin/${pname} \ --add-flags "-jar $out/share/java/${jarfilename}" + + runHook postInstall ''; meta = with lib; { @@ -30,4 +34,9 @@ stdenv.mkDerivation rec { license = licenses.asl20; maintainers = [ maintainers.shou ]; }; -} + + passthru.tests.example = callPackage ./example.nix { + openapi-generator-cli = this; + }; +}; +in this diff --git a/pkgs/tools/networking/openapi-generator-cli/example.nix b/pkgs/tools/networking/openapi-generator-cli/example.nix new file mode 100644 index 000000000000..f59173b9744a --- /dev/null +++ b/pkgs/tools/networking/openapi-generator-cli/example.nix @@ -0,0 +1,31 @@ +{ openapi-generator-cli, fetchurl, runCommand }: + +runCommand "openapi-generator-cli-test" { + nativeBuildInputs = [ openapi-generator-cli ]; + petstore = fetchurl { + url = "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/14c0908becbccd78252be49bd92be8c53cd2b9e3/examples/v3.0/petstore.yaml"; + sha256 = "sha256:1mgdbzv42alv0b1a18dqbabqyvyhrg3brynr5hqsrm3qljfzaq5b"; + }; + config = builtins.toJSON { + elmVersion = "0.19"; + elmPrefixCustomTypeVariants = false; + }; + passAsFile = [ "config" ]; +} '' + openapi-generator-cli generate \ + --input-spec $petstore \ + --enable-post-process-file \ + --generator-name elm \ + --config "$config" \ + --additional-properties elmEnableCustomBasePaths=true \ + --output "$out" \ + ; + find $out + echo >&2 'Looking for some keywords' + set -x + grep 'module Api.Request.Pets' $out/src/Api/Request/Pets.elm + grep 'createPets' $out/src/Api/Request/Pets.elm + grep '"limit"' $out/src/Api/Request/Pets.elm + set +x + echo "Looks OK!" +'' diff --git a/pkgs/tools/networking/openapi-generator-cli/unstable.nix b/pkgs/tools/networking/openapi-generator-cli/unstable.nix index 1384f35a3f20..306654f05d99 100644 --- a/pkgs/tools/networking/openapi-generator-cli/unstable.nix +++ b/pkgs/tools/networking/openapi-generator-cli/unstable.nix @@ -1,6 +1,6 @@ -{ lib, stdenv, fetchurl, jre, makeWrapper }: +{ callPackage, lib, stdenv, fetchurl, jre, makeWrapper }: -stdenv.mkDerivation rec { +let this = stdenv.mkDerivation rec { version = "6.0.0-2021-01-18"; # Also update the fetchurl link pname = "openapi-generator-cli"; @@ -18,10 +18,14 @@ stdenv.mkDerivation rec { phases = [ "installPhase" ]; installPhase = '' + runHook preInstall + install -D "$src" "$out/share/java/${jarfilename}" makeWrapper ${jre}/bin/java $out/bin/${pname} \ --add-flags "-jar $out/share/java/${jarfilename}" + + runHook postInstall ''; meta = with lib; { @@ -30,5 +34,9 @@ stdenv.mkDerivation rec { license = licenses.asl20; maintainers = [ maintainers.shou ]; }; -} + passthru.tests.example = callPackage ./example.nix { + openapi-generator-cli = this; + }; +}; +in this diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 63de087f73fe..760ced07eb6e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7202,8 +7202,8 @@ in onlykey-cli = callPackage ../tools/security/onlykey-cli { }; - openapi-generator-cli = callPackage ../tools/networking/openapi-generator-cli { }; - openapi-generator-cli-unstable = callPackage ../tools/networking/openapi-generator-cli/unstable.nix { }; + openapi-generator-cli = callPackage ../tools/networking/openapi-generator-cli { jre = pkgs.jre_headless; }; + openapi-generator-cli-unstable = callPackage ../tools/networking/openapi-generator-cli/unstable.nix { jre = pkgs.jre_headless; }; openbazaar = callPackage ../applications/networking/openbazaar { }; openbazaar-client = callPackage ../applications/networking/openbazaar/client.nix { };