diff --git a/machines/core-services-01/keycloak/package.nix b/machines/core-services-01/keycloak/package.nix deleted file mode 100644 index e9a1177..0000000 --- a/machines/core-services-01/keycloak/package.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ stdenv -, lib -, fetchzip -, makeWrapper -, jre -, writeText -, nixosTests -, callPackage - -, confFile ? null -, plugins ? [ ] -}: - -stdenv.mkDerivation rec { - pname = "keycloak"; - version = "18.0.0"; - - src = fetchzip { - url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip"; - sha256 = "sha256-Tql5/yNtdctSCYgtSnz5Pa6IwZVf/HOApFdeCEpNrjs="; - }; - - nativeBuildInputs = [ makeWrapper jre ]; - - buildPhase = '' - runHook preBuild - '' + lib.optionalString (confFile != null) '' - install -m 0600 ${confFile} conf/keycloak.conf - '' + '' - install_plugin() { - if [ -d "$1" ]; then - find "$1" -type f \( -iname \*.ear -o -iname \*.jar \) -exec install -m 0500 "{}" "providers/" \; - else - install -m 0500 "$1" "providers/" - fi - } - ${lib.concatMapStringsSep "\n" (pl: "install_plugin ${lib.escapeShellArg pl}") plugins} - '' + '' - export KC_HOME_DIR=$out - export KC_CONF_DIR=$out/conf - export ROOT_LOGLEVEL="DEBUG" - export KEYCLOAK_LOGLEVEL="DEBUG" - - patchShebangs bin/kc.sh - bin/kc.sh --verbose build - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - mkdir $out - cp -r * $out - - rm $out/bin/*.{ps1,bat} - - runHook postInstall - ''; - - postFixup = '' - substituteInPlace $out/bin/kc.sh --replace '-Dkc.home.dir=$DIRNAME/../' '-Dkc.home.dir=$KC_HOME_DIR' - substituteInPlace $out/bin/kc.sh --replace '-Djboss.server.config.dir=$DIRNAME/../conf' '-Djboss.server.config.dir=$KC_CONF_DIR' - - for script in $(find $out/bin -type f -executable); do - wrapProgram "$script" --set JAVA_HOME ${jre} --prefix PATH : ${jre}/bin - done - ''; - - passthru = { - tests = nixosTests.keycloak; - plugins = callPackage ./all-plugins.nix { }; - enabledPlugins = plugins; - }; - - meta = with lib; { - homepage = "https://www.keycloak.org/"; - description = "Identity and access management for modern applications and services"; - license = licenses.asl20; - platforms = jre.meta.platforms; - maintainers = with maintainers; [ ngerstle talyz ]; - }; - -}