Skip to main content

Treat curl configuration files as curlrc subcommands.

Project description

Treat curl configuration files as curlrc subcommands.

Usage

curl can read arguments from a configuration file. You can use this mechanism to specify default arguments (as ~/.curlrc), or tell curl to read arguments from a specific file:

curl -K @/path/to/config.rc

Create a few config files and drop them in ~/.curl (or $CURL_HOME if set):

~/.curl
└── example.rc

curlrc exposes configuration files as subcommands:

$ curlrc example

If the configuration file includes an output template, you can reformat the data as CSV, tab-separated columns, or JSON:

$ curlrc example -f csv https://example.org
$ curlrc example -f table https://example.org
$ curlrc example -f json https://example.org

Any options you pass to curlrc after -- will be passed to curl:

$ curlrc example -- -fsSL https://example.org

Example

Consider the following configuration file:

# output timing data
-s
-S
-o = /dev/null
-w = "url_effective: %{url_effective}\ntime_namelookup: %{time_namelookup}\ntime_connect: %{time_connect}\ntime_appconnect: %{time_appconnect}\ntime_pretransfer: %{time_pretransfer}\ntime_redirect: %{time_redirect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n"

If you drop this in ~/.curl/time.rc (or $CURL_HOME/time.rc), you can use it by calling curlrc time:

$ curlrc time https://example.org
url_effective: https://example.org/
time_namelookup: 0.001
time_connect: 0.026
time_appconnect: 0.180
time_pretransfer: 0.180
time_redirect: 0.000
time_starttransfer: 0.210
time_total: 0.210

Don’t like the default format? Try CSV:

$ curlrc time -f csv https://example.org
url_effective,time_namelookup,time_connect,time_appconnect,time_pretransfer,time_redirect,time_starttransfer,time_total
https://example.org/,0.001,0.030,0.194,0.194,0.000,0.228,0.228

or tab-separated columns:

$ curlrc time -f table https://example.org
url_effective       https://example.org/
time_namelookup     0.002
time_connect        0.028
time_appconnect     0.177
time_pretransfer    0.177
time_redirect       0.000
time_starttransfer  0.205
time_total  0.206

or even JSON:

$ curlrc time -f json https://example.org
{
  "url_effective": "https://example.org/",
  "time_namelookup": "0.001",
  "time_connect": "0.028",
  "time_appconnect": "0.182",
  "time_pretransfer": "0.182",
  "time_redirect": "0.000",
  "time_starttransfer": "0.213",
  "time_total": "0.213"
}

Installation

curlrc requires Python 2.7 or later. It only depends on the standard library.

Download the latest release or install with pip:

pip install curlrc

Licence

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

curlrc-0.2.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

curlrc-0.2.0-py2.py3-none-any.whl (6.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file curlrc-0.2.0.tar.gz.

File metadata

  • Download URL: curlrc-0.2.0.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for curlrc-0.2.0.tar.gz
Algorithm Hash digest
SHA256 fc5b202e3c1b637f9d9bc88a4047d27cda1a27f560b1afe2c465f186d1a903c7
MD5 7fc444536910b50ec549b24374688030
BLAKE2b-256 e726c9bf9e2feef0992ca1f9e7c13a19f2b4398039c860484ba93a81f917d189

See more details on using hashes here.

File details

Details for the file curlrc-0.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for curlrc-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 af2bf3424a9ecc87cdb225ad6582ce4bba30268750044b6d54cb674b33b8bc75
MD5 3882e8d5cc27659586c97f9ad9af77c1
BLAKE2b-256 7bfbce880de78402bcb38dd2f9d9600e9901c0eb8df2c949ed676f130f90f8dd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page