angular-cn/aio/scripts/contributors/populate_missing_contributo...

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
)