Hello. Fixed here: http://patchwork.ozlabs.org/patch/658953/
Please check.

On 12/08/2016 16:48, ad...@yapic.net wrote:
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/lib/upgrade/common.sh | 21 ++++++++++++++++-----
  package/base-files/files/sbin/sysupgrade       | 15 +++++++++++++++
  2 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/package/base-files/files/lib/upgrade/common.sh 
b/package/base-files/files/lib/upgrade/common.sh
index ea03f77..1d09f31 100644
--- a/package/base-files/files/lib/upgrade/common.sh
+++ b/package/base-files/files/lib/upgrade/common.sh
@@ -182,18 +182,29 @@ get_image() { # <source> [ <command> ]
        local cmd
case "$from" in
-               http://*|ftp://*) cmd="wget -O- -q";;
-               *) cmd="cat";;
+               scp://*)
+                       cmd="ssh"
+                       # extract custom ssh port(if specified)
+                       local custom_port=`echo $from | sed -ne 
's!.\+:\([0-9]\+\):.\+!\1!p'`
+                       [ -n "$custom_port" ] && {
+                               cmd="$cmd -p $custom_port"
+                               # remove custom port from url
+                               from=`echo $from | sed -ne 
's!:\([0-9]\+\):!:!p'`
+                       }
+                       from=`echo $from | sed -ne 's!scp://!!p' | sed -ne 's!:\(.\+\)! 
\"cat \1\"!p'`
+               ;;
+               http://* | https://* | ftp://*) cmd="wget -O-" ;;
+               *) cmd="cat" ;;
        esac
+
        if [ -z "$conc" ]; then
-               local magic="$(eval $cmd \"$from\" 2>/dev/null | dd bs=2 count=1 2>/dev/null | 
hexdump -n 2 -e '1/1 "%02x"')"
+               local magic="$(eval $cmd $from | dd bs=2 count=1 2>/dev/null | hexdump -n 2 -e 
'1/1 "%02x"')"
                case "$magic" in
                        1f8b) conc="zcat";;
                        425a) conc="bzcat";;
                esac
        fi
-
-       eval "$cmd \"$from\" 2>/dev/null ${conc:+| $conc}"
+       eval "$cmd $from ${conc:+| $conc}"
the "" are now fully gone. are you sure we never need them ? i would
expect it to be better to always have them there.

        John


  }
get_magic_word() {
diff --git a/package/base-files/files/sbin/sysupgrade 
b/package/base-files/files/sbin/sysupgrade
index 2f441f8..fc1df22 100755
--- a/package/base-files/files/sbin/sysupgrade
+++ b/package/base-files/files/sbin/sysupgrade
@@ -137,6 +137,21 @@ include /lib/upgrade
[ "$1" = "nand" ] && nand_upgrade_stage2 $@ +get_if_URL(){
+       local url="$1"
+       local url_repl_file="/tmp/sysupgrade-URL.bin"
+
+       case "$url" in
+               http://* | https://* | ftp://* | scp://*)
+               get_image "$url" "cat" > $url_repl_file
+               ARGV=${ARGV/"$url"/"$url_repl_file"}
+               ;;
+       esac
+}
+
+# get image file from URL if specified
+get_if_URL "$ARGV"
+
  do_save_conffiles() {
        local conf_tar="${1:-$CONF_TAR}"


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

Reply via email to