aboutsummaryrefslogtreecommitdiff
path: root/submit-builds
diff options
context:
space:
mode:
Diffstat (limited to 'submit-builds')
-rwxr-xr-xsubmit-builds66
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 .