]>
Commit | Line | Data |
---|---|---|
bcb6dd91 MF |
1 | #!/bin/sh |
2 | ||
3 | usage() { | |
4 | ( | |
7f51898c | 5 | echo "Usage: $0 <board-IP> [board-port [board-in-port]]" |
bcb6dd91 MF |
6 | echo "" |
7 | echo "If port is not specified, '6666' will be used" | |
8 | [ -z "$*" ] && exit 0 | |
9 | echo "" | |
10 | echo "ERROR: $*" | |
11 | exit 1 | |
12 | ) 1>&2 | |
13 | exit $? | |
14 | } | |
15 | ||
16 | while [ -n "$1" ] ; do | |
17 | case $1 in | |
18 | -h|--help) usage;; | |
19 | --) break;; | |
20 | -*) usage "Invalid option $1";; | |
21 | *) break;; | |
22 | esac | |
23 | shift | |
24 | done | |
25 | ||
26 | ip=$1 | |
7f51898c JH |
27 | board_out_port=${2:-6666} |
28 | board_in_port=${3:-${board_out_port}} | |
bcb6dd91 | 29 | |
7f51898c JH |
30 | echo Board out port: ${board_out_port} |
31 | echo Board in port: ${board_in_port} | |
32 | ||
33 | if [ -z "${ip}" ] || [ -n "$4" ] ; then | |
bcb6dd91 MF |
34 | usage "Invalid number of arguments" |
35 | fi | |
36 | ||
37 | for nc in netcat nc ; do | |
77093180 | 38 | type ${nc} >/dev/null 2>&1 && break |
bcb6dd91 MF |
39 | done |
40 | ||
41 | trap "stty icanon echo intr ^C" 0 2 3 5 10 13 15 | |
42 | echo "NOTE: the interrupt signal (normally ^C) has been remapped to ^T" | |
43 | ||
44 | stty -icanon -echo intr ^T | |
77093180 | 45 | ( |
1c20e4a9 MF |
46 | if type ncb 2>/dev/null ; then |
47 | # see if ncb is in $PATH | |
7f51898c | 48 | exec ncb ${board_out_port} |
1c20e4a9 MF |
49 | |
50 | elif [ -x ${0%/*}/ncb ] ; then | |
51 | # maybe it's in the same dir as the netconsole script | |
7f51898c | 52 | exec ${0%/*}/ncb ${board_out_port} |
1c20e4a9 MF |
53 | |
54 | else | |
55 | # blah, just use regular netcat | |
7f51898c | 56 | while ${nc} -u -l -p ${board_out_port} < /dev/null ; do |
1c20e4a9 MF |
57 | : |
58 | done | |
59 | fi | |
77093180 MF |
60 | ) & |
61 | pid=$! | |
7f51898c | 62 | ${nc} -u ${ip} ${board_in_port} |
77093180 | 63 | kill ${pid} 2>/dev/null |