diff options
author | Steven Barth <steven@midlink.org> | 2008-09-12 11:53:08 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-09-12 11:53:08 +0000 |
commit | fade8edd2dfe39ae579256d04220aba9da2ff074 (patch) | |
tree | 79a61b456ee239333b4e8adbd5ce4223d32780b0 /libs/sys | |
parent | e0cfb49235b5890b24dbfcafeb5c7805327d6403 (diff) |
Redesigned firmware upgrade process
Diffstat (limited to 'libs/sys')
-rw-r--r-- | libs/sys/luasrc/sys.lua | 26 |
1 files changed, 23 insertions, 3 deletions
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. |