Skip to content

Latest commit

 

History

History
115 lines (83 loc) · 2.96 KB

README.md

File metadata and controls

115 lines (83 loc) · 2.96 KB

🔗 GoURL

✨ do not use regex 🤡

MadeWithGo

GoURL is a small Golang program that reads URLs and email addresses from standard input (STDIN)

You can use any terminal that supports piping visible text to external programs (alacritty, kitty, wezterm, etc).

I'm using st terminal with externalpipe patch to read/pipe current visible text to this program.

Using the option -c, --copy or -o, --open will display the items in dmenu

Without flags, prints URLs found to standard output (STDOUT), you can pipe it to your preferred menu or launcher.

✨ Features

  • Extract URLs from STDIN
  • Choose items with dmenu
  • Ignore duplicates
  • Copy to clipboard
  • Open with xdg-open
  • Custom regex search
  • Add index to URLs found
  • Limit number of items

⚡️Requirements

🧰 Build

# clone the repo
$ git clone 'https://github.com/haaag/GoURL' && cd GoURL

# use make to build
$ make

Binary can be found in GoURL/bin/gourl.

📦 Installation

# use make to build
$ make

# install on system wide
$ sudo make install

# or use a symlink
$ ln -sf $PWD/bin/gourl ~/.local/bin/

Uninstall from system, use sudo make uninstall or remove symlink with rm ~/.local/bin/gourl

🚀 Usage

$ gourl -h
Extract URLs from STDIN

Usage:
  gourl [options]

Options:
  -c, --copy        Copy to clipboard
  -o, --open        Open with xdg-open
  -u, --urls        Extract URLs (default: true)
  -e, --email       Extract emails (prefix: "mailto:")
  -E, --regex       Custom regex search
  -l, --limit       Limit number of items
  -i, --index       Add index to URLs found
  -p, --prompt      Prompt for dmenu
  -a, --args        Args for dmenu
  -V, --version     Output version information
  -v, --verbose     Verbose mode
  -h, --help        Show this message

$ gourl -c < urls.txt
# or
$ cat urls.txt | gourl -c

# extract only emails
$ gourl --url=false --email --limit 1 < data.txt
# [email protected]

# with index
$ gourl -i -l 10 < urls.txt
# [1] https://www.example.org
# [2] https://www.example.com
# ...

🚩 Using -E flag

The flag -E can be use for custom regex, like in grep.

# list existing remotes
git remote -v | gourl -E '((git|ssh|http(s)?)|(git@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(\.git)(/)?'
# [email protected]:xxxxx/zzzzz.git

⭐ Related projects

  • urlscan - Designed to integrate with the "mutt" mailreader
  • urlview - Extract URLs from a text file and allow the user to select via a menu