From: Sergey Sergeev <ad...@yapic.net>

scp uls(like this 
scp://adron@192.168.88.6:lede/lede-ar71xx-mikrotik-NAND-512b-squashfs-sysupgrade.bin)
  is supported too. And you also can specify custom ssh 
port(...8.88.6:22110:lede...)

Signed-off-by: Sergey Sergeev <ad...@yapic.net>
---
 package/base-files/files/sbin/sysupgrade | 39 ++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/package/base-files/files/sbin/sysupgrade 
b/package/base-files/files/sbin/sysupgrade
index 2f441f8..a62e3ce 100755
--- a/package/base-files/files/sbin/sysupgrade
+++ b/package/base-files/files/sbin/sysupgrade
@@ -135,6 +135,45 @@ sysupgrade_image_check="platform_check_image"
 
 include /lib/upgrade
 
+download_if_URL(){
+       local url="$1"
+       local url_repl_file="/tmp/sysupgrade-URL.bin"
+       local cmd
+
+       case "$url" in
+               scp://*)
+                       local scp_url="${url#scp://}"
+                       local custom_port=$scp_url
+                       scp_url=${scp_url/:[[:digit:]]*:/:} # chomp custom ssh 
port
+                       # if custom ssh port is specified
+                       if [ "$custom_port" != "$scp_url" ]; then
+                               custom_port=${custom_port#*:}
+                               custom_port=${custom_port%%:*}
+                       else
+                               custom_port=""
+                       fi
+                       cmd="scp"
+                       [ -n "$custom_port" ] && cmd="$cmd -P $custom_port"
+                       cmd="$cmd \"$scp_url\" $url_repl_file"
+               ;;
+               *://*) cmd="wget \"$url\" -O$url_repl_file" ;;
+               *) return 0 ;;
+       esac
+
+       eval "$cmd" || {
+               echo "download process is failed! ret = $?"
+               echo "cmd: $cmd"
+               rm -f $url_repl_file
+               return 1
+       }
+
+       ARGV=${ARGV/"$url"/"$url_repl_file"}
+       return 0
+}
+
+# if URL was specified then download image file from network
+download_if_URL "$ARGV" || exit 1
+
 [ "$1" = "nand" ] && nand_upgrade_stage2 $@
 
 do_save_conffiles() {
-- 
1.9.1


_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to