From fade8edd2dfe39ae579256d04220aba9da2ff074 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Fri, 12 Sep 2008 11:53:08 +0000 Subject: Redesigned firmware upgrade process --- libs/sys/luasrc/sys.lua | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'libs') diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua index e27e1c4e8..9b68a25e6 100644 --- a/libs/sys/luasrc/sys.lua +++ b/libs/sys/luasrc/sys.lua @@ -60,15 +60,35 @@ exec = luci.util.exec --- Invoke the luci-flash executable to write an image to the flash memory. -- @param image Local path or URL to image file -- @param kpattern Pattern of files to keep over flash process --- @return Return value of os.execute() +-- @return boolean indicating status +-- @return error message if any function flash(image, kpattern) local cmd = "luci-flash " if kpattern then cmd = cmd .. "-k '" .. kpattern:gsub("'", "") .. "' " end - cmd = cmd .. "'" .. image:gsub("'", "") .. "' >/dev/null 2>&1" + cmd = cmd .. "'" .. image:gsub("'", "") .. "' 2>/dev/null" - return os.execute(cmd) + local fp = io.popen(cmd) + local line = fp:read() + + if line == "Invalid image type" then + fp:close() + return false, line + else + line = fp:read() + if line == "Performing system upgrade" then + return true + end + + line = fp:read() + if line == "Performing system upgrade" then + return true + end + + fp:close() + return false, line + end end --- Retrieve information about currently mounted file systems. -- cgit v1.2.3