#!/usr/bin/env bash set -eo pipefail # 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 if ! git fetch -q --all; then print_output "?" "Unable to fetch commits" 1 exit 1 fi if ! unstable_commit_count=$(git rev-list --count "$unstable_rev..origin/$unstable_branch"); then print_output "?" "Unable to list commits" 1 exit 1 fi text="$unstable_commit_count" tooltip="${unstable_branch}: ${unstable_commit_count}" print_output "$text" "$tooltip" 0