nix-output-monitor: Introduce update.sh
This commit is contained in:
parent
54da1bc692
commit
e8cfe80ccc
40
pkgs/tools/nix/nix-output-monitor/update.sh
Executable file
40
pkgs/tools/nix/nix-output-monitor/update.sh
Executable file
|
@ -0,0 +1,40 @@
|
|||
#!/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 --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";
|
||||
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
|
||||
'';
|
||||
}
|
||||
EOF
|
||||
|
||||
alejandra "${derivation_file}" | cat
|
||||
|
||||
echo "Finished."
|
Loading…
Reference in a new issue