about summary refs log tree commit diff
path: root/pkgs/by-name/ha
diff options
context:
space:
mode:
authorPeder Bergebakken Sundt <pbsds@hotmail.com>2023-12-06 17:05:38 +0100
committerGitHub <noreply@github.com>2023-12-06 17:05:38 +0100
commit21ed02377ca075ee099d7b189f6cc47dc8f40c9a (patch)
tree5af5c841ddde7df8e5faa4f024f4dc5b1c1ac9a0 /pkgs/by-name/ha
parent80bac0f64d8a2200204ef851426bc8fe184d3c9c (diff)
parent68fee72c52013e1128aef4a75ac8a6af9299927d (diff)
downloadnixlib-21ed02377ca075ee099d7b189f6cc47dc8f40c9a.tar
nixlib-21ed02377ca075ee099d7b189f6cc47dc8f40c9a.tar.gz
nixlib-21ed02377ca075ee099d7b189f6cc47dc8f40c9a.tar.bz2
nixlib-21ed02377ca075ee099d7b189f6cc47dc8f40c9a.tar.lz
nixlib-21ed02377ca075ee099d7b189f6cc47dc8f40c9a.tar.xz
nixlib-21ed02377ca075ee099d7b189f6cc47dc8f40c9a.tar.zst
nixlib-21ed02377ca075ee099d7b189f6cc47dc8f40c9a.zip
Merge pull request #269767 from onemoresuza/haredo
haredo: init at 1.0.5
Diffstat (limited to 'pkgs/by-name/ha')
-rw-r--r--pkgs/by-name/ha/haredo/package.nix71
-rw-r--r--pkgs/by-name/ha/haredo/setup-hook.sh69
2 files changed, 140 insertions, 0 deletions
diff --git a/pkgs/by-name/ha/haredo/package.nix b/pkgs/by-name/ha/haredo/package.nix
new file mode 100644
index 000000000000..277250170e5d
--- /dev/null
+++ b/pkgs/by-name/ha/haredo/package.nix
@@ -0,0 +1,71 @@
+{ stdenv
+, lib
+, fetchFromSourcehut
+, hare
+, scdoc
+, nix-update-script
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "haredo";
+  version = "1.0.5";
+
+  outputs = [ "out" "man" ];
+
+  src = fetchFromSourcehut {
+    owner = "~autumnull";
+    repo = "haredo";
+    rev = finalAttrs.version;
+    hash = "sha256-gpui5FVRw3NKyx0AB/4kqdolrl5vkDudPOgjHc/IE4U=";
+  };
+
+  nativeBuildInputs = [
+    hare
+    scdoc
+  ];
+
+  preBuild = ''
+    HARECACHE="$(mktemp -d --tmpdir harecache.XXXXXXXX)"
+    export HARECACHE
+    export PREFIX=${builtins.placeholder "out"}
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    ./bootstrap.sh
+
+    runHook postBuild
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+
+    ./bin/haredo test
+
+    runHook postCheck
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    ./bootstrap.sh install
+
+    runHook postInstall
+  '';
+
+  dontConfigure = true;
+  doCheck = true;
+
+  setupHook = ./setup-hook.sh;
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "A simple and unix-idiomatic build automator";
+    homepage = "https://sr.ht/~autumnull/haredo/";
+    license = lib.licenses.wtfpl;
+    maintainers = with lib.maintainers; [ onemoresuza ];
+    mainProgram = "haredo";
+    inherit (hare.meta) platforms badPlatforms;
+  };
+})
diff --git a/pkgs/by-name/ha/haredo/setup-hook.sh b/pkgs/by-name/ha/haredo/setup-hook.sh
new file mode 100644
index 000000000000..44eb453087db
--- /dev/null
+++ b/pkgs/by-name/ha/haredo/setup-hook.sh
@@ -0,0 +1,69 @@
+haredoBuildPhase() {
+    runHook preBuild
+
+    local buildTargets jobs
+    read -ra buildTargets <<<"${haredoBuildTargets-}"
+    echoCmd "haredo build targets" "${buildTargets[@]}"
+    if [[ ! -v enableParallelBuilding || -n "${enableParallelBuilding-}" ]]; then
+        jobs="${NIX_BUILD_CORES}"
+    fi
+    haredo ${jobs:+"-j${jobs}"} "${buildTargets[@]}"
+
+    runHook postBuild
+}
+
+haredoCheckPhase() {
+    runHook preCheck
+
+    local checkTargets jobs
+
+    if [[ -n "${haredoCheckTargets:-}" ]]; then
+        read -ra checkTargets <<<"${haredoCheckTargets}"
+    else
+        for dofile in "check.do" "test.do"; do
+            [[ -r "${dofile}" ]] && {
+                checkTargets=("${dofile%".do"}")
+                break
+            }
+        done
+    fi
+
+    if [[ -z "${checkTargets:-}" ]]; then
+        printf -- 'haredoCheckPhase ERROR: no check targets were found' 1>&2
+        exit 1
+    else
+        echoCmd "haredo check targets" "${checkTargets[@]}"
+        if [[ ! -v enableParallelChecking || -n "${enableParallelChecking-}" ]]; then
+            jobs="${NIX_BUILD_CORES}"
+        fi
+        haredo ${jobs:+"-j${jobs}"} "${checkTargets[@]}"
+    fi
+
+    runHook postCheck
+}
+
+haredoInstallPhase() {
+    runHook preInstall
+
+    local installTargets jobs
+    read -ra installTargets <<<"${haredoInstallTargets:-"install"}"
+    echoCmd "haredo install targets" "${installTargets[@]}"
+    if [[ ! -v enableParallelInstalling || -n "${enableParallelInstalling-}" ]]; then
+        jobs="${NIX_BUILD_CORES}"
+    fi
+    haredo ${jobs:+"-j${jobs}"} "${installTargets[@]}"
+
+    runHook postInstall
+}
+
+if [[ -z "${dontUseHaredoBuild-}" && -z "${buildPhase-}" ]]; then
+    buildPhase="haredoBuildPhase"
+fi
+
+if [[ -z "${dontUseHaredoCheck-}" && -z "${checkPhase-}" ]]; then
+    checkPhase="haredoCheckPhase"
+fi
+
+if [[ -z "${dontUseHaredoInstall-}" && -z "${installPhase-}" ]]; then
+    installPhase="haredoInstallPhase"
+fi