sr.ht-apkbuilds/submit-builds

67 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
upstream=https://builds.sr.ht
manifest=build.yml
if [ -e ~/.config/sr.ht ]
then
. ~/.config/sr.ht
fi
while getopts m:u:t:h flag
do
case $flag in
u)
upstream="$OPTARG"
;;
t)
bearer_token="$OPTARG"
;;
m)
manifest="$OPTARG"
;;
h)
echo "Usage: $0 [-u https://upstream...] [-t oauth token] <packages...>"
exit 0
;;
esac
done
shift $((OPTIND-1))
builds=""
note=""
for target in $*
do
if [ "$builds" = "" ]
then
builds="'${target#sr.ht/}'"
note="${target#sr.ht/}"
else
builds="$builds, '${target#sr.ht/}'"
if [ "${#note}" -lt 128 ]
then
note="$note, ${target#sr.ht/}"
fi
fi
done
vars="$(sed "s/packages: \\[\\]/packages: [$builds]/g" < $manifest | jq -sR '{
"manifest": .,
"tags": ["sr.ht-apkbuilds"],
"note": "'"$note"'"
}')"
query="$(jq -sR '.' <<"EOF"
mutation SubmitJob($manifest: String!, $tags: [String!]!, $note: String!) {
submit(manifest: $manifest, tags: $tags, note: $note) {
id, tags
}
}
EOF
)"
curl --oauth2-bearer "$bearer_token" \
-H Content-Type:application/json \
-d '{
"query": '"$query"',
"variables": '"$vars"'
}' "$upstream/query" | jq .