From cd1442893a5ef2b6ddc2448e452f0b87c2c5f9ce Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 17 Jun 2009 12:49:16 +0000 Subject: [PATCH] luci-0.9: merge r4865 and r4866 --- .../admin-full/luasrc/controller/admin/system.lua | 14 ++++++++++---- .../admin-mini/luasrc/controller/mini/system.lua | 14 ++++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/modules/admin-full/luasrc/controller/admin/system.lua b/modules/admin-full/luasrc/controller/admin/system.lua index 399640b521..9f66f17d30 100644 --- a/modules/admin-full/luasrc/controller/admin/system.lua +++ b/modules/admin-full/luasrc/controller/admin/system.lua @@ -266,15 +266,21 @@ function action_upgrade() -- previous pages should arrange the stuff as required. if step == 4 then if has_platform and has_image and has_support then - -- Next line is to bypass luci.http layer - luci.http.context.eoh = true - -- Now invoke sysupgrade local keepcfg = keep_avail and luci.http.formvalue("keepcfg") == "1" - os.execute("/sbin/luci-flash %s %q" %{ + local fd = io.popen("/sbin/luci-flash %s %q" %{ keepcfg and "-k %q" % _keep_pattern() or "", tmpfile }) + if fd then + while true do + local ln = fd:read("*l") + if not ln then break end + luci.http.write(ln) + end + fd:close() + end + -- Make sure the device is rebooted luci.sys.reboot() end diff --git a/modules/admin-mini/luasrc/controller/mini/system.lua b/modules/admin-mini/luasrc/controller/mini/system.lua index bb93a34c47..3aae6fa2f7 100644 --- a/modules/admin-mini/luasrc/controller/mini/system.lua +++ b/modules/admin-mini/luasrc/controller/mini/system.lua @@ -149,15 +149,21 @@ function action_upgrade() -- previous pages should arrange the stuff as required. if step == 4 then if has_platform and has_image and has_support then - -- Next line is to bypass luci.http layer - luci.http.context.eoh = true - -- Now invoke sysupgrade local keepcfg = keep_avail and luci.http.formvalue("keepcfg") == "1" - os.execute("/sbin/luci-flash %s %q" %{ + local fd = io.popen("/sbin/luci-flash %s %q" %{ keepcfg and "-k %q" % _keep_pattern() or "", tmpfile }) + if fd then + while true do + local ln = fd:read("*l") + if not ln then break end + luci.http.write(ln) + end + fd:close() + end + -- Make sure the device is rebooted luci.sys.reboot() end -- 2.30.2