curl / Mailing Lists / curl-users / Single Mail

curl-users

Re: URL parsing for the command line tool?

From: David Niklas <doark_at_mail.com>
Date: Wed, 15 Aug 2018 19:48:47 -0400

On Thu, 9 Aug 2018 15:57:32 +0200 (CEST)
Daniel Stenberg <daniel_at_haxx.se> wrote:
> Hi,
>
> In a future libcurl release, there is going to be a URL
> parsing/handling API [1] added. It can parse URLs, allow access to
> parts of the URL, setting or updating specific parts and can "merge" a
> relative URL onto an absolute one.

Cool.

> Do you think the command line tool would benefit from offering these
> services somehow? If so, how? Would you like curl to help your scripts
> or shells with in this regard?

if(( want_shell || want_script ) && IN_LATEST_COOL_CURL_VERSION)
{
  printf "Yes.\n\n"
}

Yes.

> Extract the different parts from a URL? Maybe like this?
>
> in="https://example.com/index.html"
> curl --url-input $in --url-out "%{host} %{path}\n"
>

Or like this:
export base="https://curl.haxx.se" # Base url.
export in2="download.html" # New part. Notice that the / is missing.
export in3="#Win64" # Something I added.

curl --append-urls $base $in2 $in3

Or

curl --base-url $base $in2 $in3

> Maybe change parts of a URL and output the new version?
>
> curl --url-input $in --url-replace "host=example.org" --url-out
> "%{url}\n"

Please try something more real world (even contrived). Why would
you want to change hosts? Your example makes no sense to me.

> Perhaps applying a relative path onto an absolute URL and show the
> resulting path part?
>
> curl --url-input $in --url-new "../index?nooo" --url-out "%{path}\n"
>
<snip>

export in1="../download.html"

for i in DragonFlyBSD FreeBSD NetBSD; do
  curl --base-url $base --output-url - $in1 "#" $i | ./download_curl.sh
done

As an award for your work on curl I award you, the extra
large virtual happy face.

<@ @>
  v

Sorry, I don't have anything more exiting...

David
-----------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-users
Etiquette: https://curl.haxx.se/mail/etiquette.html
Received on 2018-08-16