33 lines
1.3 KiB
Bash
Executable File
33 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Reads the contributors.json file and tries to fill in missing data from other sources.
|
|
|
|
readonly MISSING_PICTURE_QUERY='with_entries(select(.value | has("picture") | not)) | keys[]'
|
|
readonly MISSING_BIO_QUERY='with_entries(select(.value | has("bio") | not)) | keys[]'
|
|
|
|
(
|
|
cd $(dirname $0)/../../content/marketing
|
|
|
|
for handle in $(jq "$MISSING_PICTURE_QUERY" --raw-output < contributors.json); do
|
|
avatar_url=$(curl --silent -H "Authorization: token ${TOKEN}" https://api.github.com/users/$handle \
|
|
| jq ".avatar_url" --raw-output)
|
|
echo "Missing picture for $handle, downloading it from $avatar_url"
|
|
curl -o ../images/bios/$handle.jpg $avatar_url
|
|
newjson=$(mktemp)
|
|
jq ".\"$handle\".picture |= \"$handle.jpg\"" < contributors.json > $newjson
|
|
mv $newjson contributors.json
|
|
done
|
|
|
|
for handle in $(jq "$MISSING_BIO_QUERY" --raw-output < contributors.json); do
|
|
bio=$(curl --silent -H "Authorization: token ${TOKEN}" https://api.github.com/users/$handle \
|
|
| jq ".bio|tojson" --raw-output)
|
|
if [[ "$bio" != "null" ]]; then
|
|
echo "Missing bio for $handle, using \"$bio\""
|
|
|
|
newjson=$(mktemp)
|
|
jq ".\"$handle\".bio |= \"$bio\"" < contributors.json > $newjson
|
|
mv $newjson contributors.json
|
|
fi
|
|
done
|
|
)
|