54 lines
1.7 KiB
Bash
54 lines
1.7 KiB
Bash
|
#!/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."
|