diff options
Diffstat (limited to 'defaultenv/defaultenv-1/bin/_update')
-rw-r--r-- | defaultenv/defaultenv-1/bin/_update | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/defaultenv/defaultenv-1/bin/_update b/defaultenv/defaultenv-1/bin/_update new file mode 100644 index 0000000000..8e27ee10c6 --- /dev/null +++ b/defaultenv/defaultenv-1/bin/_update @@ -0,0 +1,47 @@ +#!/bin/sh + +if [ -z "$part" -o -z "$image" ]; then + echo "define \$part and \$image" + exit 1 +fi + +if [ ! -e "$part" ]; then + echo "Partition $part does not exist" + exit 1 +fi + +if [ x$mode = xtftp -o x$mode = xnfs ]; then + if [ x$ip = xdhcp -o x$ip = "xdhcp-barebox" ]; then + dhcp + fi + + ping $eth0.serverip + if [ $? -ne 0 ] ; then + echo "Server did not reply! Update aborted." + exit 1 + fi + load=$mode +fi + +if [ x$mode = xxmodem ]; then + loadb -f $image -c + if [ $? -ne 0 ] ; then + echo "loadb failed or cancelled! Update aborted." + exit 1 + fi + load="cp -v" +fi + +unprotect $part + +echo +echo "erasing partition $part" +echo +erase $part || exit 1 + +echo +echo "flashing $image to $part" +echo +$load $image $part || exit 1 + +protect $part |