diff options
Diffstat (limited to 'submit-builds')
-rwxr-xr-x | submit-builds | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/submit-builds b/submit-builds new file mode 100755 index 0000000..de6c58d --- /dev/null +++ b/submit-builds @@ -0,0 +1,66 @@ +#!/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 . |