1*7594170eSAndroid Build Coastguard Worker#!/bin/bash -eu 2*7594170eSAndroid Build Coastguard Worker 3*7594170eSAndroid Build Coastguard WorkerLIBDIR="$(dirname "$(readlink -f "$0")")" 4*7594170eSAndroid Build Coastguard Worker 5*7594170eSAndroid Build Coastguard Workerfunction print_usage() { 6*7594170eSAndroid Build Coastguard Worker echo "Usage: query.sh [-C] <command> <graph JSON> [argument]" 1>&2 7*7594170eSAndroid Build Coastguard Worker echo " -C: colorized output" 1>&2 8*7594170eSAndroid Build Coastguard Worker echo 9*7594170eSAndroid Build Coastguard Worker echo "Commands": 10*7594170eSAndroid Build Coastguard Worker for jq in "$LIBDIR"/*.jq; do 11*7594170eSAndroid Build Coastguard Worker if ! grep -q "^# CMD:" "$jq"; then 12*7594170eSAndroid Build Coastguard Worker continue 13*7594170eSAndroid Build Coastguard Worker fi 14*7594170eSAndroid Build Coastguard Worker 15*7594170eSAndroid Build Coastguard Worker local CMD="$(echo $(basename "$jq") | sed 's/\..*$//')" 16*7594170eSAndroid Build Coastguard Worker echo " $CMD": $(cat "$jq" | grep "^# CMD:" | head -n 1 | sed 's/^# CMD://') 17*7594170eSAndroid Build Coastguard Worker done 18*7594170eSAndroid Build Coastguard Worker exit 1 19*7594170eSAndroid Build Coastguard Worker} 20*7594170eSAndroid Build Coastguard Worker 21*7594170eSAndroid Build Coastguard WorkerJQARGS="" 22*7594170eSAndroid Build Coastguard Worker 23*7594170eSAndroid Build Coastguard Workerwhile getopts "C" arg; do 24*7594170eSAndroid Build Coastguard Worker case "$arg" in 25*7594170eSAndroid Build Coastguard Worker C) 26*7594170eSAndroid Build Coastguard Worker JQARGS="$JQARGS -C" 27*7594170eSAndroid Build Coastguard Worker shift 28*7594170eSAndroid Build Coastguard Worker ;; 29*7594170eSAndroid Build Coastguard Worker *) 30*7594170eSAndroid Build Coastguard Worker print_usage 31*7594170eSAndroid Build Coastguard Worker ;; 32*7594170eSAndroid Build Coastguard Worker esac 33*7594170eSAndroid Build Coastguard Workerdone 34*7594170eSAndroid Build Coastguard Worker 35*7594170eSAndroid Build Coastguard Workerif [[ "$#" -lt 2 ]]; then 36*7594170eSAndroid Build Coastguard Worker print_usage 37*7594170eSAndroid Build Coastguard Workerfi 38*7594170eSAndroid Build Coastguard Worker 39*7594170eSAndroid Build Coastguard WorkerCOMMAND="$1" 40*7594170eSAndroid Build Coastguard WorkerGRAPH="$2" 41*7594170eSAndroid Build Coastguard Worker 42*7594170eSAndroid Build Coastguard Workerif [[ "$#" -gt 2 ]]; then 43*7594170eSAndroid Build Coastguard Worker ARG="$3" 44*7594170eSAndroid Build Coastguard Workerelse 45*7594170eSAndroid Build Coastguard Worker ARG="" 46*7594170eSAndroid Build Coastguard Workerfi 47*7594170eSAndroid Build Coastguard Worker 48*7594170eSAndroid Build Coastguard Workerif [[ "$#" -gt 3 ]]; then 49*7594170eSAndroid Build Coastguard Worker ARG2="$4" 50*7594170eSAndroid Build Coastguard Workerelse 51*7594170eSAndroid Build Coastguard Worker ARG2="" 52*7594170eSAndroid Build Coastguard Workerfi 53*7594170eSAndroid Build Coastguard Worker 54*7594170eSAndroid Build Coastguard Workerjq $JQARGS -L "$LIBDIR" -f "$LIBDIR/$COMMAND".jq "$GRAPH" --arg arg "$ARG" --arg arg2 "$ARG2" 55