about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/nix/nix-output-monitor/update.sh
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/nix/nix-output-monitor/update.sh')
-rwxr-xr-xnixpkgs/pkgs/tools/nix/nix-output-monitor/update.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/nix/nix-output-monitor/update.sh b/nixpkgs/pkgs/tools/nix/nix-output-monitor/update.sh
new file mode 100755
index 000000000000..ad5da0000300
--- /dev/null
+++ b/nixpkgs/pkgs/tools/nix/nix-output-monitor/update.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p cabal2nix curl jq alejandra
+#
+# This script will update the nix-output-monitor derivation to the latest version using
+# cabal2nix.
+
+set -eo pipefail
+
+# This is the directory of this update.sh script.
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+derivation_file="${script_dir}/default.nix"
+
+# This is the latest released version of nix-output-monitor on GitHub.
+new_version=$(curl --silent "https://api.github.com/repos/maralorn/nix-output-monitor/releases" | jq '.[0].tag_name' --raw-output)
+
+echo "Updating nix-output-monitor to version $new_version."
+echo "Running cabal2nix and outputting to ${derivation_file}..."
+
+cat > "$derivation_file" << EOF
+# This file has been autogenerate with cabal2nix.
+# Update via ./update.sh"
+EOF
+
+cabal2nix \
+  --extra-arguments expect \
+  --extra-arguments runtimeShell\
+  --extra-arguments installShellFiles\
+  --maintainer maralorn \
+  "https://github.com/maralorn/nix-output-monitor/archive/refs/tags/${new_version}.tar.gz" \
+  | head -n-1 >> "$derivation_file"
+
+cat >> "$derivation_file" << EOF
+    passthru.updateScript = ./update.sh;
+    testTarget = "unit-tests";
+    buildTools = [ installShellFiles ];
+    postInstall = ''
+        cat > \$out/bin/nom-build << EOF
+        #!\${runtimeShell}
+        \${expect}/bin/unbuffer nix-build "\\\$@" 2>&1 | exec \$out/bin/nom
+        EOF
+        chmod a+x \$out/bin/nom-build
+        installShellCompletion --zsh --name _nom-build \${builtins.toFile "completion.zsh" ''
+            #compdef nom-build
+            compdef nom-build=nix-build
+        ''}
+    '';
+}
+EOF
+
+alejandra "${derivation_file}" | cat
+
+echo "Finished."