mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-30 00:34:00 +00:00
sonobuoy: add custom update script
This commit is contained in:
parent
b96fc12835
commit
5b9fbcd1b2
@ -1,7 +1,8 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
# SHA of ${version} for the tool's help output. Unfortunately this is needed in build flags.
|
||||
let rev = "6f9e27f1795f10475c9f6f5decdff692e1e228da";
|
||||
# The update script can update this automatically, the comment is used to find the line.
|
||||
let rev = "6f9e27f1795f10475c9f6f5decdff692e1e228da"; # update-commit-sha
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "sonobuoy";
|
||||
@ -27,6 +28,10 @@ buildGoModule rec {
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
passthru = {
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Diagnostic tool that makes it easier to understand the state of a Kubernetes cluster";
|
||||
longDescription = ''
|
||||
|
50
pkgs/applications/networking/cluster/sonobuoy/update.sh
Executable file
50
pkgs/applications/networking/cluster/sonobuoy/update.sh
Executable file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p nix-update curl jq gnused
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Do the actual update.
|
||||
nix-update "${UPDATE_NIX_ATTR_PATH}"
|
||||
|
||||
# Get the src metadata.
|
||||
src=$(
|
||||
nix-instantiate --json --eval --strict --expr '
|
||||
with import ./. {};
|
||||
{
|
||||
owner = '"${UPDATE_NIX_ATTR_PATH}"'.src.owner;
|
||||
repo = '"${UPDATE_NIX_ATTR_PATH}"'.src.repo;
|
||||
tag = '"${UPDATE_NIX_ATTR_PATH}"'.src.rev;
|
||||
}'
|
||||
)
|
||||
owner=$(jq -r '.owner' <<< "${src}")
|
||||
repo=$(jq -r '.repo' <<< "${src}")
|
||||
tag=$(jq -r '.tag' <<< "${src}")
|
||||
|
||||
# Curl the release to get the commit sha.
|
||||
curlFlags=("-fsSL")
|
||||
curlFlags+=(${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"})
|
||||
|
||||
read -r type tag_sha < <(
|
||||
curl "${curlFlags[@]}" "https://api.github.com/repos/${owner}/${repo}/git/ref/tags/${tag}" |
|
||||
jq -j '.object.type, " ", .object.sha, "\n"'
|
||||
)
|
||||
|
||||
if [[ "${type}" == "commit" ]]; then
|
||||
sha="${tag_sha}"
|
||||
else
|
||||
sha=$(
|
||||
curl "${curlFlags[@]}" "https://api.github.com/repos/${owner}/${repo}/git/tags/${tag_sha}" |
|
||||
jq '.object.sha'
|
||||
)
|
||||
fi
|
||||
|
||||
if [[ -z "${sha}" ]]; then
|
||||
echo "failed to get commit sha of ${owner}/${repo} @ ${tag}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "updating commit hash of ${owner}/${repo} @ ${tag} to ${sha}" >&2
|
||||
|
||||
cd "$(dirname "$(readlink -f "$0")")"
|
||||
|
||||
sed -i "s|\".*\"; # update-commit-sha|${sha}; # update-commit-sha|" default.nix
|
Loading…
Reference in New Issue
Block a user