#command-line #command-line-tool #internet #wait #connection #utility #waiting

app wait-for-internet

Command line utility that waits till you have an internet connection

2 releases

0.1.9 Mar 7, 2023
0.1.8 Dec 17, 2022

#9 in #waiting

MIT license

7KB
69 lines

wait-for-internet

So that I don't mash Refresh on a web page while I'm waiting for my laptop to have a remote connection.

Command line utility that waits till you have an internet connection.

Usage: wait-for-internet [OPTIONS]

Options:
  -t, --timeout <TIMEOUT>      Exits if a successful connection is not made within <timeout> seconds
  -q, --quiet                  Don't print any warning/log messages
  -w, --wait-time <WAIT_TIME>  Time to wait between failed requests [default: 1]
      --text <TEXT>            Text to display while waiting [default: ]
  -h, --help                   Print help (see more with '--help')
  -V, --version                Print version

Exits successfully once it makes a successful request, see the online crate for which URLs/fullbacks it uses to check for a remote connection.

Install

Install cargo, then:

cargo install wait-for-internet

Example Usage

In bash/shell scripts, I litter wait-for-internet wherever I'm paranoid about not having an internet connection. If I have some script that runs in the background that needs an internet connection (e.g. to ssh into my server and run some task), I run wait-for-internet and the top, just to be safe.

On the command line:

On Mac, one can do something like:

wait-for-internet && afplay /System/Library/Sounds/Funk.aiff

... or:

wait-for-internet --text "(waiting for internet)" && say "You have internet"

I have an alias setup on my machine that plays the default 'message' sound and sends a notification:

alias wfi='wait-for-internet && notify-send "INTERNET" && mpv /usr/share/sounds/freedesktop/stereo/message.oga > /dev/null 2>&1'

Can also be used in situations to verify you have internet before calling some other command:

wait-for-internet && xdotool search --class "Firefox" key --window %@ "ctrl+r" (refresh firefox after you have internet)

wait-for-internet && sudo apt update && sudo apt upgrade

wait-for-internet && speedtest-cli

wait-for-internet && ssh <somewhere>

wait-for-internet && fg (resume some suspended task that requires internet)

Dependencies

~1.2–1.9MB
~35K SLoC