68 lines
1.6 KiB
Bash
Executable File
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
|