diff options
author | June McEnroe <june@causal.agency> | 2021-02-17 22:57:10 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-02-17 22:57:10 -0500 |
commit | bbbcbe50f2e005335f3e7ee5ad9cb1f70ffc6986 (patch) | |
tree | 045e69753f65f7d27fdb02c8bf0d5029d8e0d89f | |
parent | Just use pbcopy in up (diff) | |
download | src-bbbcbe50f2e005335f3e7ee5ad9cb1f70ffc6986.tar.gz src-bbbcbe50f2e005335f3e7ee5ad9cb1f70ffc6986.zip |
Add bugzilla support to sup
Diffstat (limited to '')
-rw-r--r-- | bin/man1/sup.1 | 3 | ||||
-rw-r--r-- | bin/sup.sh | 39 |
2 files changed, 41 insertions, 1 deletions
diff --git a/bin/man1/sup.1 b/bin/man1/sup.1 index f0fe70cb..10dac5d9 100644 --- a/bin/man1/sup.1 +++ b/bin/man1/sup.1 @@ -1,4 +1,4 @@ -.Dd February 16, 2021 +.Dd February 17, 2021 .Dt SUP 1 .Os . @@ -36,5 +36,6 @@ and .Pp The following services are supported: .Cm discogs , +.Cm freebsdbugzilla , .Cm lobsters , .Cm tildenews . diff --git a/bin/sup.sh b/bin/sup.sh index 308fd706..b8af9fc1 100644 --- a/bin/sup.sh +++ b/bin/sup.sh @@ -11,6 +11,45 @@ copy() { printf '%s' "$1" | pbcopy } +bugzilla() { + echo 'Fetching CSRF token...' + csrf=$( + curl -Ss "${bugzillaBase}/" | + sed -n ' + /name="token"/N + s/.*name="token"[[:space:]]*value="\([^"]*\)".*/\1/p + ' | head -n 1 + ) + echo 'Submitting form...' + curl -Ss -X POST \ + -F "loginname=${email}" -F "token=${csrf}" -F 'a=reqpw' \ + "${bugzillaBase}/token.cgi" \ + >/dev/null + echo 'Waiting for email...' + token=$( + git fetch-email -i -M Trash \ + -F "${bugzillaFrom}" -T "${email}" \ + -S 'Bugzilla Change Password Request' | + sed -n 's/.*t=3D\([^&]*\).*/\1/p' | + head -n 1 + ) + password=$(generate) + echo 'Setting password...' + curl -Ss -X POST \ + -F "t=${token}" -F 'a=chgpw' \ + -F "password=${password}" -F "matchpassword=${password}" \ + "${bugzillaBase}/token.cgi" \ + >/dev/null + copy "${password}" + open "${bugzillaBase}/" +} + +freebsdbugzilla() { + bugzillaBase='https://bugs.freebsd.org/bugzilla' + bugzillaFrom='bugzilla-noreply@freebsd.org' + bugzilla +} + discogs() { echo 'Submitting form...' curl -Ss -X POST \ |