Archived
1
0
This repository has been archived on 2020-03-05. You can view files and clone it, but cannot push or open issues or pull requests.
rero-ils-graphs/orgas/gen.sh

68 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Generate a dot file to create digraph of RERO-ils data
output="$1"
source="/home/od/projets/rero/rero-ils/data/"
# start of file
echo "digraph {" > "$output"
# ORGANISATIONS
orga_file="${source}organisations.json"
cat "${orga_file}"|jq -c '.[] | {
name,
pid,
code }'| while read orga
do
# take important info
pid=$(echo $orga|jq -r .pid)
code=$(echo $orga|jq -r .code)
name=$(echo $orga|jq -r .name)
# write result in output
echo "Orga${pid} [label=\"${name}\"]" >> "$output"
done
# LIBRARIES
lib_file="${source}libraries.json"
cat "${lib_file}"|jq -c '.[] | {
name,
pid,
organisation: .organisation."$ref"}'|while read lib
do
pid=$(echo $lib|jq -r .pid)
name=$(echo $lib|jq -r .name)
orga=$(echo $lib|jq -r .organisation)
orga_pid=$(echo $orga|rev|cut -d "/" -f 1|rev)
# write result in output
l_id="Lib${pid}"
echo "${l_id} [label=\"${name}\"]" >> "$output"
echo "${l_id} -> Orga${orga_pid}" >> "$output"
done
# USERS
user_file="${source}users.json"
cat "${user_file}"|jq -c '.[] | {
email,
first_name,
last_name,
library: .library."$ref"} | select(.library |length >= 1)'|while read user
do
email=$(echo $user|jq -r .email)
first_name=$(echo $user|jq -r .first_name)
last_name=$(echo $user|jq -r .last_name)
library=$(echo $user|jq -r .library)
library_pid=$(echo $library|rev|cut -d "/" -f 1|rev)
# write result in output
u_id="User_${email}"
echo "\"${u_id}\" [label=\"${first_name} ${last_name}\"]" >> "$output"
echo "\"${u_id}\" -> Lib${library_pid}" >> "$output"
done
# end of file
echo "}" >> "$output"
# END of program
exit 0