
augment the images with meta attributes from the input packages. and then use the meta.description as dockerhub metadata.
47 lines
1.1 KiB
Bash
Executable file
47 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Update docker hub image descriptions. The API is not documented and might
|
|
# break in the future.
|
|
#
|
|
# Usage: ./dockerhub-metadata <user> <password> [org]
|
|
set -euo pipefail
|
|
|
|
username=$1
|
|
password=$2
|
|
org=${3:-nixpkgs}
|
|
user=$username:$password
|
|
|
|
nix_eval() {
|
|
nix-instantiate --strict --eval --json "$@"
|
|
}
|
|
|
|
releases_json=$(nix_eval release.nix)
|
|
|
|
to_json() {
|
|
local desc=$1 full_desc=$2
|
|
jq -n \
|
|
--arg desc "$desc" \
|
|
--arg full_desc "$full_desc" \
|
|
'.description=$desc | .full_description=$full_desc'
|
|
}
|
|
|
|
echo "=== Updating Docker Hub project descriptions"
|
|
|
|
for attr in $(echo "$releases_json" | jq -r "keys[]") ; do
|
|
echo "--- $attr"
|
|
desc=$(nix_eval ./release.nix -A "$attr.meta.description" | jq -r .)
|
|
|
|
if [[ -f "$attr/README.md" ]]; then
|
|
full_desc=$(< "$attr/README.md")
|
|
else
|
|
full_desc=$(< "README.md")
|
|
fi
|
|
|
|
data=$(to_json "$desc" "$full_desc")
|
|
echo "data: $data"
|
|
url=https://cloud.docker.com/v2/repositories/$org/$attr/
|
|
|
|
curl -XPATCH -H "Content-Type: application/json" --user "$user" --data "$data" "$url"
|
|
done
|
|
|
|
echo OK
|