[LEDE-DEV] [PATCH] base-files: sysupgrade. Added the ability to use URL as source
John Crispin
john at phrozen.org
Wed Jul 27 22:11:23 PDT 2016
Hi,
sorry for the late reply. i like the idea. however, please move the code
into get_image() inside package/base-files/files/lib/upgrade/common.sh
where the http/ftp code resides.
John
On 06/07/2016 15:40, adron at yapic.net wrote:
> From: Sergey Sergeev <adron at 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 <adron at 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..834cc3a 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() {
>
More information about the Lede-dev
mailing list