9front - general discussion about 9front
 help / color / mirror / Atom feed
From: ori@eigenstate.org
To: julien@typed-hole.org
To: 9front@9front.org
Subject: Re: [9front] [PATCH] Update hpost to use -r header like hget
Date: Tue, 15 Dec 2020 10:42:37 -0800	[thread overview]
Message-ID: <EEE2530F13BFE807311AEE3CD02AA3CD@eigenstate.org> (raw)
In-Reply-To: <5bae97d5-c808-7faf-c0f3-2dfcdfabbfa1@typed-hole.org>

Quoth Julien Blanchard <julien@typed-hole.org>:
> Hello,
> This is a small update to hpost which allows the use of a -r header 
> option just like in hget. I had the need when trying to push a file to 
> an API which also needed an authorization header.
> It's the first time I write some not trivial rc script so maybe there is 
> a better way to add this option. After quite some testing it looks like 
> it works at least :)

Thanks for the patch. just a few revisions:

> 
> Cheers,
> julienxx
> 
> 
> 
> diff -r ac35c963f8e2 rc/bin/hpost
> --- a/rc/bin/hpost	Sun Dec 13 20:23:03 2020 +0100
> +++ b/rc/bin/hpost	Tue Dec 15 17:45:26 2020 +0000
> @@ -1,12 +1,13 @@
>   #!/bin/rc
>   rfork e
>   url=()
> +header=()

unrelated to your change, but while we're here:
if you could also set action=()/method=(), that
would prevent them from leaking in through the
environment.

>   at=()	# text fields
>   af=()	# file fields
>   l=()
> 
>   fn usage {
> -	echo 'usage: hpost [ -l ] [ -[gpm] action ] [ -u ] url [ field:value | 
> field@file ... ]' >[1=2]
> +	echo 'usage: hpost [ -l ] [ -[gpm] action ] [ -r ] header [ -u ] url [ 
> field:value | field@file ... ]' >[1=2]
>   	exit usage
>   }
> 
> @@ -14,6 +15,7 @@
>   	switch($1){
>   	case -l;	l=($l $1)
>   	case -u;	shift; url=$1
> +	case -r;	shift; header=$1

This only supports one header. hget allows repeated
-r flags to add multiple headers:

	hget -r foo -r bar

The change for multiple headers should be as simple
as one change here:

	headers=($headers $1)

> +	if not
> +		hget=(hget -r $header $l)


And one here here:

	-r^$headers

which will distribute -r across all of the
entries in the headers list.

As a reminder: in rc,

	foo_^(x y z)

expands to:

	foo_x foo_y foo_z


  reply	other threads:[~2020-12-15 18:43 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-15 18:02 Julien Blanchard
2020-12-15 18:42 ` ori [this message]
2020-12-16 18:16   ` Julien Blanchard
2020-12-16 18:51     ` sirjofri
2020-12-16 19:50       ` ori
2020-12-16 21:34         ` sirjofri
2020-12-16 21:52           ` ori
2020-12-16 22:55             ` sirjofri
2020-12-16 23:13               ` Steve Simon
2020-12-17  9:33                 ` Julien Blanchard
2020-12-17 10:30                   ` Alex Musolino
2020-12-17 11:23                     ` Julien Blanchard
2020-12-18  4:35                       ` ori
2020-12-16 19:54     ` estevan.cps
2020-12-18  2:25 ` magma698hfsp273p9f

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=EEE2530F13BFE807311AEE3CD02AA3CD@eigenstate.org \
    --to=ori@eigenstate.org \
    --cc=9front@9front.org \
    --cc=julien@typed-hole.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).