forked from Telodendria/Telodendria
Replace all usages of curl in tp, document tp and tt.
This commit is contained in:
parent
872fa1aa66
commit
abbbfe4d7f
4 changed files with 101 additions and 6 deletions
2
TODO.txt
2
TODO.txt
|
@ -30,7 +30,7 @@ Milestone: v0.3.0
|
|||
[x] td
|
||||
[x] tt
|
||||
[ ] http-debug-server
|
||||
[ ] tp
|
||||
[x] tp
|
||||
[x] send-patch
|
||||
[x] Log
|
||||
[x] TelodendriaConfig -> Config
|
||||
|
|
63
man/man1/tp.1
Normal file
63
man/man1/tp.1
Normal file
|
@ -0,0 +1,63 @@
|
|||
.Dd $Mdocdate: April 29 2023 $
|
||||
.Dt TP 1
|
||||
.Os Telodendria Project
|
||||
.Sh NAME
|
||||
.Nm tp
|
||||
.Nd Manage the official patch queue.
|
||||
.Sh SYNOPSIS
|
||||
.Np
|
||||
.Op action
|
||||
.Op patch
|
||||
.Sh DESCRIPTION
|
||||
.Pp
|
||||
This script is probably not going to be very useful for anyone other
|
||||
than the official project managers, but for completeness, this page
|
||||
documents it.
|
||||
.Pp
|
||||
.Nm
|
||||
is a simple script that is used to manage the patch queue. It offers a
|
||||
simple way to fetch patches from the patch Matrix room and queue them
|
||||
in a patch directory, which is then updated as patches are handled.
|
||||
Contributions to Telodendria are entirely patch-based, so this script
|
||||
makes dealing with patch files much more convenient.
|
||||
.Pp
|
||||
.Nm
|
||||
doesn't implement a complex command line interface. It simply takes an
|
||||
action as the first argument, and a patch file ID as the second
|
||||
argument to some actions. The actions are as follows:
|
||||
.Bl -tag -width Ds
|
||||
.It ingress
|
||||
Download all new patches from the patches room. This action is intended
|
||||
to be called periodically from
|
||||
.Xr cron 8
|
||||
to fetch new patches.
|
||||
.It queue
|
||||
List all the patches in the queue, printing the first three lines of
|
||||
each one so they can be easily identified.
|
||||
.It view
|
||||
View the specified patch. Note that the specified patch must be in
|
||||
the queue. Once it is applied or rejected, this script offers no
|
||||
facility for viewing it.
|
||||
.It apply
|
||||
Apply the specified patch to the current working directory.
|
||||
.It reverse
|
||||
Reverse the specified patch on the current working directory.
|
||||
.It accept|reject
|
||||
Accept or reject the specified patch by moving it to the appropriate
|
||||
directory. These actions also prompt for a message, into which it is
|
||||
expected that an explanation for why the patch was accepted or rejected
|
||||
will be placed.
|
||||
.El
|
||||
.Sh ENVIRONMENT
|
||||
.Pp
|
||||
The following environment variables are read by the
|
||||
.Nm
|
||||
script:
|
||||
.Bl -tag -width Ds
|
||||
.It Ev TELODENDRIA_PUB
|
||||
The base directory inside which the patch directory relies.
|
||||
.It Ev HOMESERVER
|
||||
The Matrix homeserver to contact for receiving patches.
|
||||
.It Ev ACCESS_TOKEN
|
||||
The access token to use to authenticate with the Matrix homeserver.
|
||||
.El
|
34
man/man1/tt.1
Normal file
34
man/man1/tt.1
Normal file
|
@ -0,0 +1,34 @@
|
|||
.Dd $Mdocdate: April 29 2023 $
|
||||
.Dt TT 1
|
||||
.Os Telodendria Project
|
||||
.Sh NAME
|
||||
.Nm tt
|
||||
.Nd Make authenticated Matrix requests.
|
||||
.Sh SYNPOSIS
|
||||
.Nm
|
||||
.Op request-path
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
is an extremely simple wrapper over
|
||||
.Xr http 1
|
||||
and
|
||||
.Xr json 1
|
||||
that automatically registers a user and continues to log in as that
|
||||
user. It obtains an access token that it uses to authenticate the
|
||||
given request, and then logs out when the request has completed. It
|
||||
also doesn't require the whole URL to be typed; only the path name
|
||||
is needed.
|
||||
.Sh ENVIRONMENT
|
||||
.Bl -tag
|
||||
.It Ev METH
|
||||
The request method to use for the user-specified request.
|
||||
.It Ev DATA
|
||||
The data to pass to
|
||||
.Xr http 1 .
|
||||
This can either be a string, or a file. Consult the
|
||||
.Xr http 1
|
||||
page for details.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr http 1 ,
|
||||
.Xr json 1
|
|
@ -13,8 +13,6 @@ fi
|
|||
|
||||
TP_DIR="$TELODENDRIA_PUB/patches"
|
||||
|
||||
CURL="curl -s"
|
||||
|
||||
if [ ! -d "$TP_DIR" ]; then
|
||||
echo "$TP_DIR does not exist."
|
||||
exit 1
|
||||
|
@ -32,14 +30,14 @@ matrix_send() {
|
|||
printf ',"format":"org.matrix.custom.html",'
|
||||
printf '"msgtype":"m.text"'
|
||||
printf '}'
|
||||
) | $CURL -X PUT -d @- "$HOMESERVER/client/v3/rooms/$PATCHES_ROOM/send/m.room.message/$(date +%s)?access_token=$ACCESS_TOKEN"
|
||||
) | http -X PUT -d @- "$HOMESERVER/client/v3/rooms/$PATCHES_ROOM/send/m.room.message/$(date +%s)?access_token=$ACCESS_TOKEN"
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
"ingress")
|
||||
timeline="/tmp/timeline.json"
|
||||
$CURL "$HOMESERVER/client/v3/sync?access_token=$ACCESS_TOKEN" |
|
||||
http "$HOMESERVER/client/v3/sync?access_token=$ACCESS_TOKEN" |
|
||||
json -s "rooms->join->${PATCHES_ROOM}->timeline" >"$timeline"
|
||||
|
||||
length=$(cat "$timeline" | json -s "events->@length")
|
||||
|
@ -74,7 +72,7 @@ case "$1" in
|
|||
|
||||
server=$(echo "$url" | cut -d '/' -f 3)
|
||||
|
||||
if ! $CURL -o "$TP_DIR/ingress/$id.patch" "$HOMESERVER/media/v3/download/$server/$id"; then
|
||||
if ! http "$HOMESERVER/media/v3/download/$server/$id" > "$TP_DIR/ingress/$id.patch"; then
|
||||
rm "$TP_DIR/ingress/$id.patch"
|
||||
echo "Failed to fetch mxc://$server/$id."
|
||||
echo "Will try again next time."
|
||||
|
|
Loading…
Reference in a new issue