69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
[ -f "$x" ] || error 1 "No file '$x'."
done
for x in files/*.bin; do
[ "$x" = 'files/*.bin' ] && error 1 "No 'files/*.bin' here."
done
ls_usb_interfaces() {
for i in `find -H /sys/bus/usb/devices/usb* -name interface`; do
u=$(dirname $i)
(cd $u && echo -n "$u" &&
echo -n "|$(<../manufacturer)|$(<../product)|$(<interface)" &&
echo -n "|$(<../idVendor):$(<../idProduct)" &&
echo '')
done
}
get_port() {
local prompt="$*"
local port=''
{ lsusb; ls -l /dev/ttyUSB*; } >/dev/tty
while [ -z "$port" ]; do
read -r -p "${prompt}: " port </dev/tty
[ -e "$port" ] && break
[ -e "/dev/$port" ] && { port="/dev/$port"; break; }
[ -e "/dev/tty$port" ] && { port="/dev/tty$port"; break; }
echo "No port '$port'!"
port=''
done >/dev/tty
echo "$prompt is '$port'." > /dev/tty
echo "$port"
}
get_partition() {
local partn=''
select partn in $(awk 'NF == 4 {print $2}' partitions.txt); do
if grep -q " $partn " partitions.txt; then
|
>
>
>
>
>
>
>
|
>
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
[ -f "$x" ] || error 1 "No file '$x'."
done
for x in files/*.bin; do
[ "$x" = 'files/*.bin' ] && error 1 "No 'files/*.bin' here."
done
ls_usb_interfaces() {
local -i n=0
for i in `find -H /sys/bus/usb/devices/usb* -name interface`; do
u=$(dirname $i)
let n+=1
(cd $u && echo -n "$u" &&
echo -n "|$(<../manufacturer)|$(<../product)|$(<interface)" &&
echo -n "|$(<../idVendor):$(<../idProduct)" &&
echo '')
done
(( n == 0 )) && echo "!!! No USB *interfaces* found !!!"
}
get_port() {
local prompt="$*"
local port=''
{ lsusb; ls -l /dev/ttyUSB*; } >/dev/tty
while [ -z "$port" ]; do
read -r -p "${prompt}: " port </dev/tty
[ -e "$port" ] && break
[ -e "/dev/$port" ] && { port="/dev/$port"; break; }
[ -e "/dev/tty$port" ] && { port="/dev/tty$port"; break; }
echo "No port '$port'!"
port=''
done >/dev/tty
local w=q r=q
[ -r "$port" ] && r=readable || r=non-readable
[ -w "$port" ] && w=writable || w=non-writable
ls -l "$port" > /dev/tty
echo "$prompt is '$port', $w, $r." > /dev/tty
read -r -p 'Press <RETURN> to continue...' w < /dev/tty
echo "$port"
}
get_partition() {
local partn=''
select partn in $(awk 'NF == 4 {print $2}' partitions.txt); do
if grep -q " $partn " partitions.txt; then
|