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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for curlrc-0.1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0250ecde087a8791fc0b8fb2268f8cc6d423ec3b77e4251c32f42eea1384170c |
|
MD5 | 4d7f2ad815491c60ae0efcdf1da3b811 |
|
BLAKE2b-256 | 0f4869ec13165428c3659f2aec13506c60ee742332138b42a3a8f6d1577950b0 |