#!/bin/bash # Récupération du chemin absolut du répertoir du script actuel GPATH="$( cd "$(dirname "$0")" ; pwd -P )" source $GPATH/.env jsonFile="$GPATH/db/daily.json" jsonData=$(cat $jsonFile) # Parse options for i in $@; do case "$i" in -c|--cumulate) jsonData="$(jq -f $GPATH/lib/cumulate.jq $jsonFile)";; -h|--help) echo "TODO";; *) isOptions+="$i|";; esac done cmd=$(cut -d'|' -f1 <<<"$isOptions") dateRange=$(cut -d'|' -f2 <<<"$isOptions") args="$(cut -d'|' -f2- <<<"$isOptions" | sed 's/.$//' | tr '|' ' ')" [[ -z "$dateRange" ]] && dateRange=$(jq -r '.[].date' <<<$jsonData | tail -n1) [[ ! $(grep "$dateRange" <<<$jsonData) && $cmd != "select" ]] && echo "La date $dateRange n'existe pas en cache G1Stats" && exit 1 day() { jq '.[] | select(.date=="'$dateRange'")' <<<$jsonData } mass() { jsonDated=$(jq '.[0: map(.date) | index("'$dateRange'")+1]' <<<$jsonData | jq -f $GPATH/lib/cumulate.jq) jq '.[] | .UD*.nbrMembers' <<<"$jsonDated" | awk '{ SUM += $1} END { printf "%.2f", SUM }'; echo } solde() { cumDay=$(day) soldeWallets=$(jq '(.rWallets-.sWallets)*100.0+ 0.5|floor/100.0' <<<$cumDay) soldeMembers=$(jq '(.rMembers-.sMembers)*100.0+ 0.5|floor/100.0' <<<$cumDay) jo -p date=$dateRange soldeWallets=$soldeWallets soldeMembers=$soldeMembers | jq . } total() { cumDay=$(day) totalReceived=$(jq '(.rWallets+.rMembers)*100.0+ 0.5|floor/100.0' <<<$cumDay) totalSent=$(jq '(.sWallets+.sMembers)*100.0+ 0.5|floor/100.0' <<<$cumDay) jo -p date=$dateRange totalReceived=$totalReceived totalSent=$totalSent | jq . } selectFunc() { jq '.[] | select('"$args"')' <<<$jsonData } case $cmd in select) selectFunc;; '') jsonData="$(jq -f $GPATH/lib/cumulate.jq $jsonFile)"; day;; *) $cmd;; esac