mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 09:13:01 +02:00
104 lines
2.0 KiB
Bash
Executable File
104 lines
2.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
. $(dirname $(readlink -f "$0"))/libll.sh
|
|
|
|
usage()
|
|
{
|
|
local me="$(basename $0)"
|
|
|
|
cat <<EOF
|
|
usage: $me [-A] <command> [<args>]
|
|
|
|
Wrap various existing network facilities such that an interface name
|
|
may be supplied in places where a hostname is otherwise expected.
|
|
|
|
Options:
|
|
|
|
-A
|
|
For commands requiring authentication, use password
|
|
authentication with username "admin" and password "admin".
|
|
|
|
Commands:
|
|
|
|
scan [-a] [<iface>]
|
|
Discover Infix devices on the LAN using mDNS-SD (avahi-browse).
|
|
Use -a to show all mDNS devices, not just Infix. Falls back to
|
|
IPv6 link-local multicast ping if avahi-browse is not installed
|
|
and <iface> is specified.
|
|
|
|
peer <iface>
|
|
Return the address of the first IPv6 neighbor to respond on
|
|
<iface>'s local LAN.
|
|
|
|
ping <iface>
|
|
Send ping to all-hosts group, with link-local scope, on <iface>,
|
|
suppressing loopbacked packets.
|
|
|
|
ssh <iface> [<ssh-arguments>]
|
|
ssh(1) to the neighboring host on <iface>.
|
|
|
|
scp <src> <dst>
|
|
scp(1) from <src> to <dst>, but any host specified in either
|
|
<src> or <dst> is assumed to be an interface name, which is
|
|
expanded to a neighboring host on that interface.
|
|
|
|
${0} help
|
|
Display this message.
|
|
|
|
Examples:
|
|
|
|
Start interactive ssh(1) session to the neighbor to eth0
|
|
$me ssh eth0
|
|
|
|
Copy /etc/hostname from the neighbor to eth0, using admin/admin
|
|
$me -A scp eth0:/etc/hostname /tmp/hostname
|
|
|
|
EOF
|
|
}
|
|
|
|
while getopts "A" opt; do
|
|
case ${opt} in
|
|
A)
|
|
LLSSH_USER=admin
|
|
LLSSH_PASS=admin
|
|
LLSSH_OPTS="$LLSSH_OPTS -oStrictHostKeyChecking=no"
|
|
LLSSH_OPTS="$LLSSH_OPTS -oUserKnownHostsFile=/dev/null"
|
|
;;
|
|
esac
|
|
done
|
|
shift $((OPTIND - 1))
|
|
|
|
if [ $# -lt 1 ]; then
|
|
usage && exit 1
|
|
fi
|
|
|
|
cmd="$1"
|
|
shift
|
|
|
|
case "$cmd" in
|
|
help)
|
|
usage && exit 0
|
|
;;
|
|
scan)
|
|
llscan "$@"
|
|
;;
|
|
peer)
|
|
llpeer "$@"
|
|
;;
|
|
ping)
|
|
llping "$@"
|
|
;;
|
|
scp)
|
|
llscp "$@"
|
|
;;
|
|
ssh)
|
|
llssh "$@"
|
|
;;
|
|
*)
|
|
echo "Unknown command \"$cmd\"" >2
|
|
exit 1
|
|
;;
|
|
esac
|