
This code is duplicated in two scripts. Put it into a new wait_raw_device to avoid this. Also rename the 'done' variable to 'complete' to void confusing it with the end of the for loop.
Signed-off-by: Simon Glass sjg@chromium.org ---
bin/flash.sdwire_digital-loggers_raw | 15 +----------- bin/flash.sdwire_poweroff_raw | 15 +----------- bin/wait_raw_device | 34 ++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 28 deletions(-) create mode 100644 bin/wait_raw_device
diff --git a/bin/flash.sdwire_digital-loggers_raw b/bin/flash.sdwire_digital-loggers_raw index 7d5fbc9..f9956f7 100644 --- a/bin/flash.sdwire_digital-loggers_raw +++ b/bin/flash.sdwire_digital-loggers_raw @@ -33,20 +33,7 @@ curl --data ${power_port}=OFF -o /dev/null --silent \ # Switch over to get USB card access sd-mux-ctrl --device-serial ${sdwire_serial} --ts
-# Wait for the device to become available -done=false -for i in {0..9}; do - if dd if=${raw_device} of=/dev/null count=1 >/dev/null 2>&1; then - done=true - break - fi - - sleep 1 -done -if [[ $done = false ]]; then - echo "Failed to access ${raw_device} after 10 tries" - exit 1 -fi +. wait_raw_device
writer.${flash_writer} ${raw_device} ${U_BOOT_BUILD_DIR}
diff --git a/bin/flash.sdwire_poweroff_raw b/bin/flash.sdwire_poweroff_raw index 28fa096..d82a3ef 100644 --- a/bin/flash.sdwire_poweroff_raw +++ b/bin/flash.sdwire_poweroff_raw @@ -34,20 +34,7 @@ mount_dir=/media/${mount_point} # Switch over to get USB card access sd-mux-ctrl --device-serial ${sdwire_serial} --ts
-# Wait for the device to become available -done=false -for i in {0..9}; do - if dd if=${raw_device} of=/dev/null count=1 >/dev/null 2>&1; then - done=true - break - fi - - sleep 1 -done -if [[ $done = false ]]; then - echo "Failed to access ${raw_device} after 10 tries" - exit 1 -fi +. wait_raw_device
writer.${flash_writer} ${raw_device} ${U_BOOT_BUILD_DIR}
diff --git a/bin/wait_raw_device b/bin/wait_raw_device new file mode 100644 index 0000000..c292114 --- /dev/null +++ b/bin/wait_raw_device @@ -0,0 +1,34 @@ +# Copyright 2021 Google LLC +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# Wait for the device ${raw_device} to become available +complete=false +for i in {0..9}; do + if dd if=${raw_device} of=/dev/null count=1 >/dev/null 2>&1; then + complete=true + break + fi + + sleep 1 +done +if [[ $complete = false ]]; then + echo "Failed to access ${raw_device} after 10 tries" + exit 1 +fi