curl/README.md
vlw 82f4938be0 feat: add script to save and load configs (#5)
In this PR we add the ability to save, move, and load configurations with a new `save.sh` script.

Reviewed-on: https://codeberg.org/vlw/curl/pulls/5
Co-authored-by: vlw <victor@vlw.se>
Co-committed-by: vlw <victor@vlw.se>
2026-03-29 13:47:09 +02:00

88 lines
No EOL
2.8 KiB
Markdown

![screenshot](https://codeberg.org/attachments/1cae98c6-0873-41fd-aad0-d33bf495fc50)
![license](https://licensebuttons.net/p/zero/1.0/88x31.png)
This is a wrapper for curl written in bash designed to be used along with Visual Studio Code.
> Mom, can we have Postman?
>
> We have Postman at home!
>
> [\- Source](https://knowyourmeme.com/memes/we-have-food-at-home)
[Here is a simpler version of this script that prints the response body directly to the console](/vlw/curl/src/tag/1.1.0)
# Get started
Clone this repo
```sh
git clone https://codeberg.org/vlw/curl --depth 1
```
This script uses separate files in the `curl/` directory for various request options. You can generate these files on first load by running the init script.
```sh
./init.sh
```
> [!Note]
> If you're using this with VSCode, drag each file into the workspace area where you want it to display. You of course don't have to follow the layout in the screenshot above.
# Files
This script reads or writes values in these files to construct a request or show a response from a request.
## Disable SSL peer validation
You can disable SSL peer validation (for self-signed certificates etc.) by creating an empty file `disable_peer_validation` in the base directory of this repo.
```sh
touch disable_peer_validation
```
## Request
### `curl/req_params.txt`
URL search parameters. Each newline is treated as a separate search parameter.
```
foo=bar
fizz=buzz
```
### `curl/req_body.json`
JSON request body that will be sent with all requests (except `GET`). Leave empty to send nothing.
```json
{
"request_body_parameter": "request_body_value"
}
```
### `curl/req_headers.json`
Key-value JSON object of optional request headers.
```json
{
"X-Header-Name": "Header value"
}
```
## Response
### `curl/resp_headers.txt`
A raw output of the response headers from the last request
### `curl/resp_body.txt`
The raw response body received from the last request
### `curl/resp_body.json`
The raw response body parsed into- and automatically pretty-printed JSON
# Make a request
Run the `curl.sh` file from your shell and pass it two parametes for URL and request method.
```sh
./curl.sh https://example.com GET
```
# Save and load configurations
The `save.sh` script allows you to save and load configurations so you can easily switch between them.
Command|Description
--|--
`./save.sh save <name>`|Save the current configuration where `<name>` is the name of this configuration
`./save.sh move <name>`|Move the current configuration where `<name>` is the name of this configuration. A new empty configuration will be created.
`./save.sh load <name>`|Load a saved configuration where `<name>` is the name of the target configuration. The current configuration will be saved as `._backup`.
`./save.sh list`|List all saved configurations