From bcb5c2b5f80b0bd65bfe05aedaaf3c4d86a4f116 Mon Sep 17 00:00:00 2001 From: Vitor Pavan Date: Sat, 28 Mar 2026 18:34:10 +0100 Subject: [PATCH] keycloak-config-cli: refactor: move to pkgs/by-name Previously nested under pkgs.keycloak.plugins, making it invisible on search.nixos.org and unusable as a standalone CLI tool. keycloak-config-cli is a standalone CLI, not a Keycloak server plugin. Moving it to pkgs/by-name makes it a proper top-level attribute so users can install it directly with nix profile install or systemPackages. Also adds: makeWrapper for a `keycloak-config-cli` binary, meta.mainProgram, meta.platforms, and passthru.updateScript. --- .../package.nix} | 16 ++++++++++++++-- pkgs/by-name/ke/keycloak/all-plugins.nix | 1 - 2 files changed, 14 insertions(+), 3 deletions(-) rename pkgs/by-name/ke/{keycloak/keycloak-config-cli/default.nix => keycloak-config-cli/package.nix} (57%) diff --git a/pkgs/by-name/ke/keycloak/keycloak-config-cli/default.nix b/pkgs/by-name/ke/keycloak-config-cli/package.nix similarity index 57% rename from pkgs/by-name/ke/keycloak/keycloak-config-cli/default.nix rename to pkgs/by-name/ke/keycloak-config-cli/package.nix index 2f9d8e722cba..df21c7e3715f 100644 --- a/pkgs/by-name/ke/keycloak/keycloak-config-cli/default.nix +++ b/pkgs/by-name/ke/keycloak-config-cli/package.nix @@ -2,6 +2,9 @@ maven, lib, fetchFromGitHub, + jre_headless, + makeWrapper, + nix-update-script, }: maven.buildMavenPackage rec { pname = "keycloak-config-cli"; @@ -19,19 +22,28 @@ maven.buildMavenPackage rec { # Tests use MockServer which needs to bind to a local port __darwinAllowLocalNetworking = true; + nativeBuildInputs = [ makeWrapper ]; + installPhase = '' runHook preInstall - install -Dm444 -t "$out" target/keycloak-config-cli.jar + install -Dm444 target/keycloak-config-cli.jar $out/share/keycloak-config-cli/keycloak-config-cli.jar + makeWrapper ${jre_headless}/bin/java $out/bin/keycloak-config-cli \ + --add-flags "-jar $out/share/keycloak-config-cli/keycloak-config-cli.jar" runHook postInstall ''; + passthru.updateScript = nix-update-script { }; + meta = { - homepage = "https://github.com/adorsys/keycloak-config-cli/"; + homepage = "https://github.com/adorsys/keycloak-config-cli"; description = "Import YAML/JSON-formatted configuration files into Keycloak"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ jefferyoo anish + vitorpavani ]; + mainProgram = "keycloak-config-cli"; + platforms = jre_headless.meta.platforms; }; } diff --git a/pkgs/by-name/ke/keycloak/all-plugins.nix b/pkgs/by-name/ke/keycloak/all-plugins.nix index 99f123433053..5e36541557b5 100644 --- a/pkgs/by-name/ke/keycloak/all-plugins.nix +++ b/pkgs/by-name/ke/keycloak/all-plugins.nix @@ -6,7 +6,6 @@ }: { keycloak-2fa-sms-authenticator = callPackage ./keycloak-2fa-sms-authenticator { }; - keycloak-config-cli = callPackage ./keycloak-config-cli { }; keycloak-discord = callPackage ./keycloak-discord { }; keycloak-enforce-mfa-authenticator = callPackage ./keycloak-enforce-mfa-authenticator { }; keycloak-magic-link = callPackage ./keycloak-magic-link { };