Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
1.6 kB · 73 lines
Shell
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374#!/usr/bin/env nix-shell#!nix-shell -i bash -p jq ncurses# shellcheck shell=bash
# Get a nixpkgs maintainer's metadata as a JSON object# see HELP_MESSAGE just below, or README.md.
set -euo pipefail
declare -A SELECTORS=( [handle]= [email]= [github]= [githubId]= [matrix]= [name]= )HELP_MESSAGE="usage: '$0' [selector] valueexamples: get-maintainer.sh nicoo get-maintainer.sh githubId 1155801
\`selector\` defaults to 'handle', can be one of: ${!SELECTORS[*]}"
MAINTAINERS_DIR="$(dirname "$0")/.."
die() { tput setaf 1 # red echo "'$0': $*" tput setaf 0 # back to black exit 1}
listAsJSON() { nix-instantiate --eval --strict --json "${MAINTAINERS_DIR}/maintainer-list.nix"}
parseArgs() { [ $# -gt 0 -a $# -lt 3 ] || { echo "$HELP_MESSAGE" die "invalid number of arguments (must be 1 or 2)" }
if [ $# -eq 1 ]; then selector=handle else selector="$1" shift fi [ -z "${SELECTORS[$selector]-n}" ] || { echo "Valid selectors are:" "${!SELECTORS[@]}" >&2 die "invalid selector '$selector'" }
value="$1" shift}
query() { # explode { a: A, b: B, ... } into A + {handle: a}, B + {handle: b}, ... local explode="to_entries[] | .value + { \"handle\": .key }"
# select matching items from the list # TODO(nicoo): Support approximate matching for `name` ? local select case "$selector" in githubId) select="select(.${selector} == $value)" ;; *) select="select(.${selector} == \"$value\")" esac
echo "$explode | $select"}
parseArgs "$@"listAsJSON | jq -e "$(query)"