Re: [ptxdist] [RFC] ptxd_make_get_http: Specify the username and password
On Sun, Jan 08, 2017 at 01:10:14AM +0100, Roland Hieber wrote: > Hm, curl loads URLs in the form http://user:password@server/path just > fine for me (and ptxd_make_get() doesn't seem to strip that part, so I > guess it should also be usable in the Makefiles). The only disadvantage > in that case is that the username cannot contain a colon, but neither > can it in your implementation :) So I would change it to take a separate > "user" and "password" parameter in order to enhance the usefullness of > this option. Well, that doesn't improve anything as curl parameter is: --user=: so this problem remains, it does only improve situation for wget. But as wget also accepts credentials in url, I'll forget this until someone needs colon in username. ladis > - Roland > > On 07.01.2017 22:58, Ladislav Michl wrote: > > Hi there, > > > > I need to pass username and password to download mercurial snapshot from > > server, so something like this now works: > > package_URL := > > https://mercurial.site.com/hg/package/archive/$(package_VERSION).$(package_SUFFIX);user=: > > > > Is it acceptable to support it in upstream PTXdist? > > (it could be probably rewritten some nicer way, but I'm not too good at > > shell scripting) > > > > ladis > > > > diff --git a/scripts/lib/ptxd_make_get.sh b/scripts/lib/ptxd_make_get.sh > > index 2bac97817..e392e8b0c 100644 > > --- a/scripts/lib/ptxd_make_get.sh > > +++ b/scripts/lib/ptxd_make_get.sh > > @@ -25,6 +25,7 @@ ptxd_make_get_http() { > > # scan for valid options > > # > > while [ ${#} -ne 0 ]; do > > + local cred > > local opt="${1}" > > shift > > > > @@ -45,6 +46,13 @@ ptxd_make_get_http() { > > curl_opts[${#curl_opts[@]}]="--cookie" > > curl_opts[${#curl_opts[@]}]="${opt#cookie:}" > > ;; > > + user=*) > > + cred="${opt#user=}" > > + cred=(${cred//:/ }) > > + opts[${#opts[@]}]="--user=${cred[0]}" > > + opts[${#opts[@]}]="--password=${cred[1]}" > > + curl_opts[${#curl_opts[@]}]="${opt#user=}" > > + ;; > > *) > > ptxd_bailout "invalid option '${opt}' to > > ${FUNCNAME}" > > ;; > > > > ___ > > ptxdist mailing list > > ptxdist@pengutronix.de > > > > ___ > ptxdist mailing list > ptxdist@pengutronix.de ___ ptxdist mailing list ptxdist@pengutronix.de
Re: [ptxdist] [RFC] ptxd_make_get_http: Specify the username and password
Hm, curl loads URLs in the form http://user:password@server/path just fine for me (and ptxd_make_get() doesn't seem to strip that part, so I guess it should also be usable in the Makefiles). The only disadvantage in that case is that the username cannot contain a colon, but neither can it in your implementation :) So I would change it to take a separate "user" and "password" parameter in order to enhance the usefullness of this option. - Roland On 07.01.2017 22:58, Ladislav Michl wrote: > Hi there, > > I need to pass username and password to download mercurial snapshot from > server, so something like this now works: > package_URL := > https://mercurial.site.com/hg/package/archive/$(package_VERSION).$(package_SUFFIX);user=: > > Is it acceptable to support it in upstream PTXdist? > (it could be probably rewritten some nicer way, but I'm not too good at shell > scripting) > > ladis > > diff --git a/scripts/lib/ptxd_make_get.sh b/scripts/lib/ptxd_make_get.sh > index 2bac97817..e392e8b0c 100644 > --- a/scripts/lib/ptxd_make_get.sh > +++ b/scripts/lib/ptxd_make_get.sh > @@ -25,6 +25,7 @@ ptxd_make_get_http() { > # scan for valid options > # > while [ ${#} -ne 0 ]; do > + local cred > local opt="${1}" > shift > > @@ -45,6 +46,13 @@ ptxd_make_get_http() { > curl_opts[${#curl_opts[@]}]="--cookie" > curl_opts[${#curl_opts[@]}]="${opt#cookie:}" > ;; > + user=*) > + cred="${opt#user=}" > + cred=(${cred//:/ }) > + opts[${#opts[@]}]="--user=${cred[0]}" > + opts[${#opts[@]}]="--password=${cred[1]}" > + curl_opts[${#curl_opts[@]}]="${opt#user=}" > + ;; > *) > ptxd_bailout "invalid option '${opt}' to > ${FUNCNAME}" > ;; > > ___ > ptxdist mailing list > ptxdist@pengutronix.de > ___ ptxdist mailing list ptxdist@pengutronix.de
[ptxdist] [RFC] ptxd_make_get_http: Specify the username and password
Hi there, I need to pass username and password to download mercurial snapshot from server, so something like this now works: package_URL := https://mercurial.site.com/hg/package/archive/$(package_VERSION).$(package_SUFFIX);user=: Is it acceptable to support it in upstream PTXdist? (it could be probably rewritten some nicer way, but I'm not too good at shell scripting) ladis diff --git a/scripts/lib/ptxd_make_get.sh b/scripts/lib/ptxd_make_get.sh index 2bac97817..e392e8b0c 100644 --- a/scripts/lib/ptxd_make_get.sh +++ b/scripts/lib/ptxd_make_get.sh @@ -25,6 +25,7 @@ ptxd_make_get_http() { # scan for valid options # while [ ${#} -ne 0 ]; do + local cred local opt="${1}" shift @@ -45,6 +46,13 @@ ptxd_make_get_http() { curl_opts[${#curl_opts[@]}]="--cookie" curl_opts[${#curl_opts[@]}]="${opt#cookie:}" ;; + user=*) + cred="${opt#user=}" + cred=(${cred//:/ }) + opts[${#opts[@]}]="--user=${cred[0]}" + opts[${#opts[@]}]="--password=${cred[1]}" + curl_opts[${#curl_opts[@]}]="${opt#user=}" + ;; *) ptxd_bailout "invalid option '${opt}' to ${FUNCNAME}" ;; ___ ptxdist mailing list ptxdist@pengutronix.de