mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-03-06 00:01:03 +00:00
Multiple scripts, go packages, shared configs...
Documentation, links, renaming files for clarity, and all that.
This commit is contained in:
45
local/bin/x-when-up
Executable file
45
local/bin/x-when-up
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Wait until a given host is online (determined by ping) then execute the
|
||||
# given command
|
||||
#
|
||||
# Usage:
|
||||
# ./when-up HOST COMMAND...
|
||||
#
|
||||
# Example
|
||||
# ./when-up 1.2.3.4 ssh 1.2.3.4
|
||||
#
|
||||
# Special case:
|
||||
# when using when-up to ssh to a host, this host does not need to be given twice
|
||||
# ./when-up ssh 1.2.3.4
|
||||
#
|
||||
|
||||
#
|
||||
# Ensure we received the correct number of arguments.
|
||||
#
|
||||
if [ $# -lt 2 ]; then
|
||||
echo "Usage: $0 HOST COMMAND..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $1 = "ssh" ]; then
|
||||
HOST=$2
|
||||
else
|
||||
HOST=$1
|
||||
fi
|
||||
|
||||
echo "Waiting for $HOST to come online..."
|
||||
|
||||
ping -c 1 -W 1 $HOST > /dev/null
|
||||
while [ $? -ne 0 ]; do
|
||||
sleep 1
|
||||
ping -c 1 -W 1 $HOST > /dev/null
|
||||
done
|
||||
|
||||
# By the time we reach here the ping-command has completed successfully
|
||||
# so we can launch the command we were given - along with any arguments.
|
||||
if [ $1 != "ssh" ]; then
|
||||
shift
|
||||
fi
|
||||
|
||||
"$@"
|
||||
Reference in New Issue
Block a user