2020-02-02 23:05:18 +00:00
# url-parser
2023-08-22 07:46:00 +00:00
Simple command-line URL parser
2023-08-21 14:06:34 +00:00
[![Build Status ](https://ci.thegeeklab.de/api/badges/thegeeklab/url-parser/status.svg )](https://ci.thegeeklab.de/repos/thegeeklab/url-parser)
2020-09-21 18:24:51 +00:00
[![Go Report Card ](https://goreportcard.com/badge/github.com/thegeeklab/url-parser )](https://goreportcard.com/report/github.com/thegeeklab/url-parser)
2020-09-21 18:54:34 +00:00
[![GitHub contributors ](https://img.shields.io/github/contributors/thegeeklab/url-parser )](https://github.com/thegeeklab/url-parser/graphs/contributors)
2021-01-04 15:49:49 +00:00
[![License: MIT ](https://img.shields.io/github/license/thegeeklab/url-parser )](https://github.com/thegeeklab/url-parser/blob/main/LICENSE)
2020-02-02 23:05:18 +00:00
Inspired by [herloct/url-parser ](https://github.com/herloct/url-parser ), a simple command-line utility for parsing URLs.
2021-10-25 10:48:09 +00:00
## Installation
2020-02-02 23:05:18 +00:00
2023-08-21 14:06:34 +00:00
Prebuilt multiarch binaries are available for Linux only.
2020-02-02 23:05:18 +00:00
```Shell
2023-10-17 12:38:17 +00:00
curl -SsfL https://github.com/thegeeklab/url-parser/releases/latest/download/url-parser-linux-amd64 -o /usr/local/bin/url-parser
2020-02-02 23:05:18 +00:00
chmod +x /usr/local/bin/url-parser
```
2021-10-25 10:48:09 +00:00
## Build
Build the binary from source with the following command:
```Shell
2022-04-25 10:56:32 +00:00
make build
2021-10-25 10:48:09 +00:00
```
2020-02-02 23:05:18 +00:00
## Usage
```Shell
$ url-parser --help
NAME:
url-parser - Parse URL and shows the part of it.
USAGE:
2024-11-05 13:35:26 +00:00
url-parser [global options] command [command options]
2020-02-02 23:05:18 +00:00
VERSION:
2020-02-03 14:00:54 +00:00
devel
2020-02-02 23:05:18 +00:00
COMMANDS:
2020-02-03 14:00:54 +00:00
all, a Get all parts from url
scheme, s Get scheme from url
user, u Get username from url
password, pw Get password from url
path, pt Get path from url
2024-11-05 13:35:26 +00:00
host, ht Get hostname from url
2020-02-03 14:00:54 +00:00
port, p Get port from url
query, q Get query from url
fragment, f Get fragment from url
help, h Shows a list of commands or help for one command
2020-02-02 23:05:18 +00:00
GLOBAL OPTIONS:
--url value source url to parse [$URL_PARSER_URL]
2023-07-19 13:56:43 +00:00
--help, -h show help
--version, -v print the version
2020-02-02 23:05:18 +00:00
```
## Examples
```Shell
2023-07-19 13:56:43 +00:00
$ url-parser --url https://somedomain.com host
2020-02-02 23:05:18 +00:00
somedomain.com
2023-07-19 13:56:43 +00:00
$ url-parser --url https://herloct@somedomain.com user
2020-02-02 23:05:18 +00:00
herloct
2023-07-19 13:56:43 +00:00
$ url-parser --url https://somedomain.com/path/to path
2020-02-02 23:05:18 +00:00
/path/to
2023-07-19 13:56:43 +00:00
$ url-parser --url https://somedomain.com/path/to path --path-index=1
2020-02-02 23:05:18 +00:00
to
2023-07-19 13:56:43 +00:00
$ url-parser --url https://somedomain.com/?some-key=somevalue query
2020-02-02 23:05:18 +00:00
some-key=somevalue
2023-07-19 13:56:43 +00:00
$ url-parser --url https://somedomain.com/?some-key=somevalue query --query-field=some-key
2020-02-02 23:05:18 +00:00
somevalue
2023-07-23 08:02:46 +00:00
# It is also possible to read the URL from stdin
$ echo "https://somedomain.com" | url-parser host
somedomain.com
2024-11-05 13:35:26 +00:00
# Get json output or all parsed parts
$ url-parser --url https://somedomain.com/?some-key=somevalue all --json
{"scheme":"https","hostname":"somedomain.com","port":"","path":"/","fragment":"","rawQuery":"some-key=somevalue","queryParams":[{"key":"some-key","value":"somevalue"}],"username":"","password":""}
2020-02-02 23:05:18 +00:00
```
2020-09-21 18:54:34 +00:00
## Contributors
2022-07-12 07:12:32 +00:00
Special thanks to all [contributors ](https://github.com/thegeeklab/url-parser/graphs/contributors ). If you would like to contribute, please see the [instructions ](https://github.com/thegeeklab/url-parser/blob/main/CONTRIBUTING.md ).
2020-09-21 18:54:34 +00:00
2020-02-24 21:26:37 +00:00
## License
2020-02-02 23:05:18 +00:00
2021-01-04 15:49:49 +00:00
This project is licensed under the MIT License - see the [LICENSE ](https://github.com/thegeeklab/url-parser/blob/main/LICENSE ) file for details.