56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/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
 |