From 9c91790c187bfe10c5d001aca6f6fcc65c1e068d Mon Sep 17 00:00:00 2001 From: "John (Github)" <48443038+wangxiaoerYah@users.noreply.github.com> Date: Thu, 9 May 2024 19:36:27 +0800 Subject: halo: init at 2.15.1 halo: init at 2.15.1 (add notes.) halo: init at 2.15.1 --- pkgs/by-name/ha/halo/package.nix | 72 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 pkgs/by-name/ha/halo/package.nix (limited to 'pkgs/by-name/ha') diff --git a/pkgs/by-name/ha/halo/package.nix b/pkgs/by-name/ha/halo/package.nix new file mode 100644 index 0000000000000..bbe71993674a7 --- /dev/null +++ b/pkgs/by-name/ha/halo/package.nix @@ -0,0 +1,72 @@ +{ lib +, stdenv +, fetchurl +, makeWrapper + # official jre size is 500MB, but temurin-jre-bin is 100MB. +, temurin-jre-bin +}: +stdenv.mkDerivation rec { + pname = "halo"; + version = "2.15.1"; + src = fetchurl { + url = "https://github.com/halo-dev/halo/releases/download/v${version}/${pname}-${version}.jar"; + hash = "sha256-6qgbUXd0E38Rhv0Jf1qP54yJhQiB1a/Jr1FYw3bC4qI="; + }; + + nativeBuildInputs = [ + makeWrapper + temurin-jre-bin + ]; + + dontBuild = true; + dontConfigure = true; + + unpackPhase = '' + cp $src halo.jar + # Extract the jar file. + # Because jar vs extract, jar startup time is 4s slower than extract. + java -Djarmode=tools -jar halo.jar extract --layers --launcher + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/halo + find halo -type d -empty -delete + for target in halo/*; do + cp -r $target/* $out/share/halo + done + + # 'HALO_WORK_DIR' + # Set the working directory for halo, then plug-ins and other content will be stored in this directory. + # Note: that the '/' symbol is not required at the end of the path. + # default: /var/lib/halo + # 'JVM_OPTS' + # Note: 'apache.lucene' requires us to set HotspotVMOptions. + # You can override this via environment variables. + # default: -Xms256m -Xmx256m + # 'SPRING_CONFIG_LOCATION' + # Note: 'spring.config.location' is used to specify the configuration file location. + # Warning: This variable is based on "HALO_WORK_DIR", you do not need and should not set or override it. + mkdir -p $out/bin + makeWrapper ${temurin-jre-bin}/bin/java $out/bin/halo \ + --chdir $out/share/halo \ + --set-default HALO_WORK_DIR "/var/lib/halo" \ + --set-default JVM_OPTS "-Xms256m -Xmx256m" \ + --set SPRING_CONFIG_LOCATION "optional:classpath:/;optional:file:\`\$HALO_WORK_DIR\`/" \ + --add-flags "-server \$JVM_OPTS" \ + --add-flags "org.springframework.boot.loader.launch.JarLauncher" + + runHook postInstall + ''; + + meta = { + homepage = "https://www.halo.run"; + description = "Self-hosted dynamic blogging program"; + maintainers = with lib.maintainers; [ yah ]; + license = lib.licenses.gpl3Only; + platforms = [ "aarch64-linux" "x86_64-linux" ]; + mainProgram = "halo"; + sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; + }; +} -- cgit 1.4.1