50 lines
1.4 KiB
Bash
50 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Args:
|
|
# $1 text
|
|
# $2 tooltip
|
|
# $3 error-code
|
|
print_output() {
|
|
local text="$1"
|
|
local tooltip="$2"
|
|
local error_code="$3"
|
|
|
|
if [ -z "$error_code" ]; then
|
|
output=$(jq -n \
|
|
--arg text "$text" \
|
|
--arg tooltip "$tooltip" \
|
|
--unbuffered \
|
|
--compact-output \
|
|
'{text: $text, tooltip: $tooltip}')
|
|
else
|
|
output=$(jq -n \
|
|
--arg text "$text" \
|
|
--arg tooltip "$tooltip" \
|
|
--unbuffered \
|
|
--compact-output \
|
|
'{text: $text, tooltip: $tooltip}')
|
|
fi
|
|
|
|
echo "$output"
|
|
}
|
|
|
|
FLAKE_DIR="/home/torjus/nixos"
|
|
NIXPKGS_DIR="/home/torjus/git/nixpkgs"
|
|
|
|
flake_metadata=$(nix flake metadata --json "$FLAKE_DIR" 2>/dev/null)
|
|
|
|
unstable_input=$(echo "$flake_metadata" | jq '.locks.nodes.root.inputs.nixpkgs')
|
|
unstable_rev=$(echo "$flake_metadata" | jq -r ".locks.nodes.$unstable_input.locked.rev")
|
|
unstable_branch=$(echo "$flake_metadata" | jq -r ".locks.nodes.$unstable_input.original.ref")
|
|
|
|
cd "$NIXPKGS_DIR" || print_output "?" "Could not find git repo dir" 1
|
|
git fetch -q --all
|
|
if ! unstable_commit_count=$(git rev-list --count "$unstable_rev..origin/$unstable_branch"); then
|
|
print_output "?" "Unable to list commits" 1
|
|
fi
|
|
|
|
text="$unstable_commit_count"
|
|
tooltip="${unstable_branch}: ${unstable_commit_count}"
|
|
|
|
print_output "$text" "$tooltip" 0
|