g1-stats/explorer.sh

61 lines
1.8 KiB
Bash
Raw Normal View History

2020-09-19 04:01:10 +02:00
#!/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
2020-09-19 04:01:10 +02:00
day() {
jq '.[] | select(.date=="'$dateRange'")' <<<$jsonData
}
2020-09-19 04:01:10 +02:00
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