Skip to content

mwarkentin/yuri

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yuri

CLI tool to parse URIs into their components

Installation

Binaries

Binaries for linux and macs can be downloaded and installed from the Github Releases.

Source

If you want to install from source:

$ git clone git@github.com:mwarkentin/yuri.git
$ cd yuri
$ make install

Examples

CLI

$ yuri "https://username:password@stage.example.com:443/path+to+foo?query1=1&query2=2#FRAG" | jq
{
  "fragment": "FRAG",
  "host": "stage.example.com:443",
  "hostname": "stage.example.com",
  "port": "443",
  "opaque": "",
  "password": "password",
  "path": "/path+to+foo",
  "rawpath": "/path+to+foo",
  "rawquery": "query1=1&query2=2",
  "scheme": "https",
  "username": "username"
}

Available fields

Here are the JSON fields provided by yuri:

  • scheme: type of URI
  • opaque: encoded opaque data
  • username: basic auth username
  • password: basic auth password
  • host: host or host:port
  • hostname: host without port
  • port: port
  • path: path
  • rawpath: encoded path
  • rawquery: encoded query values, without ?
  • fragment: fragment for references, without #

Developing yuri

Running tests

Run make test.

Updating dependencies

Run make vendor and check in updates.

Releasing

  • Push tag to Github: git tag x.y.z && git push origin x.y.z
  • Create release: gh release create x.y.z

Binaries for multiple architectures (linux / darwin) will be built in Github Actions.