Revert "Redesigned firmware upgrade process"
authorSteven Barth <steven@midlink.org>
Fri, 12 Sep 2008 16:12:23 +0000 (16:12 +0000)
committerSteven Barth <steven@midlink.org>
Fri, 12 Sep 2008 16:12:23 +0000 (16:12 +0000)
contrib/package/luci-addons/dist/sbin/luci-flash
i18n/english/luasrc/i18n/admin-core.en.lua
i18n/english/luasrc/i18n/admin-core.en.xml
i18n/german/luasrc/i18n/admin-core.de.lua
i18n/german/luasrc/i18n/admin-core.de.xml
libs/sgi-cgi/luasrc/sgi/cgi.lua
libs/sys/luasrc/sys.lua
modules/admin-full/luasrc/controller/admin/system.lua
modules/admin-full/luasrc/view/admin_system/upgrade.htm
modules/admin-mini/luasrc/controller/mini/system.lua
modules/admin-mini/luasrc/view/mini/upgrade.htm

index 07434b5073d30e7619535a8a43411be15070149a..79bc834b4528892e277653febc93f4df0ee34f73 100755 (executable)
@@ -85,5 +85,9 @@ done
 [ -n "$sysupgrade_init_conffiles" ] && do_save_conffiles
 run_hooks "" $sysupgrade_pre_upgrade
 
+ask_bool() {
+       false
+}
+
 v "Switching to ramdisk..."
 run_ramfs '. /etc/functions.sh; include /lib/upgrade; do_upgrade'
index c260b59b4b310c480a6522a8515fe2be965ec985..88d6249c6a08795f0bf9df1e016aaa1353aa6918 100644 (file)
@@ -70,7 +70,7 @@ a_s_flash_flashed = 'Firmware successfully flashed. Rebooting device...'
 a_s_flash_flasherr = 'Failed to flash'
 a_s_flash_fwimage = 'Firmwareimage'
 a_s_flash_received = 'Image received. About to start flashing process. DO NOT POWER OFF THE DEVICE!'
-a_s_flash_inprogress = 'Now writing firmware. Depending on your hardware this can take up to 20 minutes or more. Please check your device from time to time to see whether the writing process has completed.'
+a_s_flash_inprogress = 'Writing firmware...'
 a_s_flash_fwupgrade = 'Flash Firmware'
 a_s_flash_keepcfg = 'Keep configuration files'
 a_s_flash_notimplemented = 'Sorry, this function is not (yet) available for your platform.'
index 322185d97bcef005945c5872705bdbc3fc3a0682..c161a948ccaed0db9d6777a2e38768b4ff8ffc85 100644 (file)
@@ -74,7 +74,7 @@
 <i18n:msg xml:id="a_s_flash_flasherr">Failed to flash</i18n:msg>
 <i18n:msg xml:id="a_s_flash_fwimage">Firmwareimage</i18n:msg>
 <i18n:msg xml:id="a_s_flash_received">Image received. About to start flashing process. DO NOT POWER OFF THE DEVICE!</i18n:msg>
-<i18n:msg xml:id="a_s_flash_inprogress">Now writing firmware. Depending on your hardware this can take up to 20 minutes or more. Please check your device from time to time to see whether the writing process has completed.</i18n:msg>
+<i18n:msg xml:id="a_s_flash_inprogress">Writing firmware...</i18n:msg>
 <i18n:msg xml:id="a_s_flash_fwupgrade">Flash Firmware</i18n:msg>
 <i18n:msg xml:id="a_s_flash_keepcfg">Keep configuration files</i18n:msg>
 <i18n:msg xml:id="a_s_flash_notimplemented">Sorry, this function is not (yet) available for your platform.</i18n:msg>
index 5221b9a3906f237ef1363e5af5b8d0189424de6b..30258fbffe5b548cad4c52308f2c146d9a189f0d 100644 (file)
@@ -40,7 +40,7 @@ a_s_flash_flashed = 'Flashvorgang erfolgreich. Router startet neu...'
 a_s_flash_flasherr = 'Flashvorgang fehlgeschlagen'
 a_s_flash_fwimage = 'Firmwareimage'
 a_s_flash_received = 'Abbild empfangen. Starte Flashvorgang. SCHALTEN SIE DAS GERÄT NICHT AUS!'
-a_s_flash_inprogress = 'Die Firmware wird nun geschrieben. Abhängig von der Hardware kann dieser Prozess bis zu 20 Minuten und länger dauern. Bitte prüfen sie das Gerät von Zeit zu Zeit, um zu sehen, ob der Schreibvorgang beendet ist.'
+a_s_flash_inprogress = 'Schreibe Firmware...'
 a_s_flash_fwupgrade = 'Firmware aktualisieren'
 a_s_flash_keepcfg = 'Konfigurationsdateien übernehmen'
 a_s_flash_notimplemented = 'Diese Funktion steht leider (noch) nicht zur Verfügung.'
index f963d0359723228cfe2b3eb7e0ef56b1e4ae4a11..3a821c3fdbc3982001245ad1630c8d76c4f688b1 100644 (file)
@@ -44,7 +44,7 @@
 <i18n:msg xml:id="a_s_flash_flasherr">Flashvorgang fehlgeschlagen</i18n:msg>
 <i18n:msg xml:id="a_s_flash_fwimage">Firmwareimage</i18n:msg>
 <i18n:msg xml:id="a_s_flash_received">Abbild empfangen. Starte Flashvorgang. SCHALTEN SIE DAS GERÄT NICHT AUS!</i18n:msg>
-<i18n:msg xml:id="a_s_flash_inprogress">Die Firmware wird nun geschrieben. Abhängig von der Hardware kann dieser Prozess bis zu 20 Minuten und länger dauern. Bitte prüfen sie das Gerät von Zeit zu Zeit, um zu sehen, ob der Schreibvorgang beendet ist.</i18n:msg>
+<i18n:msg xml:id="a_s_flash_inprogress">Schreibe Firmware...</i18n:msg>
 <i18n:msg xml:id="a_s_flash_fwupgrade">Firmware aktualisieren</i18n:msg>
 <i18n:msg xml:id="a_s_flash_keepcfg">Konfigurationsdateien übernehmen</i18n:msg>
 <i18n:msg xml:id="a_s_flash_notimplemented">Diese Funktion steht leider (noch) nicht zur Verfügung.</i18n:msg>
index f78adeaed60a8ade6874b965abcefd78dd8a7b44..d36d43fb51973c3b50014a6b08ed97e37d09759d 100644 (file)
@@ -61,7 +61,6 @@ function run()
                        elseif id == 4 then
                                io.write(data1)
                        elseif id == 5 then
-                               io.close()
                                active = false
                        end
                end
index cf7fbc05f895c81a63e3e4288c08ecab6f71da4b..e27e1c4e8ae6a0a1f180d695682fd86e1bc0d9bf 100644 (file)
@@ -60,27 +60,15 @@ 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                     boolean indicating status
--- @return                     error message if any
+-- @return                     Return value of os.execute()
 function flash(image, kpattern)
        local cmd = "luci-flash "
        if kpattern then
                cmd = cmd .. "-k '" .. kpattern:gsub("'", "") .. "' "
        end
-       cmd = cmd .. "'" .. image:gsub("'", "") .. "' 2>/dev/null &"
+       cmd = cmd .. "'" .. image:gsub("'", "") .. "' >/dev/null 2>&1"
 
-       local fp = io.popen(cmd)
-       fp:setvbuf("no")
-       
-       local line = fp:read()
-       
-       if line == "Invalid image type" then
-               fp:close()
-               return false, line
-       else
-               fp:close()
-               return true
-       end
+       return os.execute(cmd)
 end
 
 --- Retrieve information about currently mounted file systems.
index 55087a01774d7b5414a21da2f45f468ec5683fd9..5d64336e03ee7192b0a695de78ff7d0e443108f2 100644 (file)
@@ -182,7 +182,7 @@ end
 function action_upgrade()
        require("luci.model.uci")
 
-       local ret, err
+       local ret
        local plat = luci.fs.mtime("/lib/upgrade/platform.sh")
        local tmpfile = "/tmp/firmware.img"
        local broadcom = os.execute('grep brcm_ /lib/upgrade/platform.sh >/dev/null 2>&1') == 0
@@ -208,11 +208,12 @@ function action_upgrade()
        local keepcfg = keep_avail and luci.http.formvalue("keepcfg")
 
        if plat and fname then
-               ret, err = luci.sys.flash(tmpfile, keepcfg and _keep_pattern())
+               ret = function()
+                       return luci.sys.flash(tmpfile, keepcfg and _keep_pattern())
+               end
        end
 
-       luci.template.render("admin_system/upgrade", {sysupgrade=plat,
-               ret=ret, err=err, keep_avail=keep_avail})
+       luci.template.render("admin_system/upgrade", {sysupgrade=plat, ret=ret, keep_avail=keep_avail})
 end
 
 function _keep_pattern()
index 40f3ec984415e1f0807f9fef74e2ee181d65aaf4..a3d97d6497c5872fb051fe4b2187ef3837e4d4b5 100644 (file)
@@ -17,7 +17,7 @@ $Id$
 <h2><%:a_s_flash%></h2>
 <p><%:a_s_flash_upgrade1%></p>
 <br />
-<% if sysupgrade and ret == nil then %>
+<% if sysupgrade and not ret then %>
 <form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
        <div class="left"><%:a_s_flash_fwimage%>:</div>
        <div>
@@ -33,14 +33,20 @@ $Id$
                <input type="submit" value="<%:a_s_flash_fwupgrade%>" />
        </div>
 </form>
-<% elseif ret ~= nil then %>
-       <% if ret then %>
-<p><%:a_s_flash_received%></p>
-<p><%:a_s_flash_inprogress%></p>
+<% elseif ret then %>
+       <p><%:a_s_flash_received%></p>
+       <p><%:a_s_flash_inprogress%></p>
+       
+<!-- <%=string.rep(" ", 2048)%> -->
+       <% %>
+       <% local ret = ret() 
+       if ret == 0 then %>
+<div class="ok"><%:a_s_flash_flashed%></div>
        <% else %>
-<div class="error"><%:a_s_flash_flasherr%>! (<%=err%>)</div>   
+<div class="error"><%:a_s_flash_flasherr%>! (<%:code%> <%=ret%>)</div> 
        <% end %>
 <% else %>
 <div class="error"><%:a_s_flash_notimplemented%></div>
 <% end %>
 <%+footer%>
+<% if ret == 0 then luci.sys.reboot() end %>
index d68283cc620a51b2170e5795f9ffe5e6fad21066..6d16ef8650e22c91e7ea1616f20384f8ccb5d4dd 100644 (file)
@@ -79,7 +79,7 @@ end
 function action_upgrade()
        require("luci.model.uci")
 
-       local ret, err
+       local ret  = nil
        local plat = luci.fs.mtime("/lib/upgrade/platform.sh")
        local tmpfile = "/tmp/firmware.img"
        local broadcom = os.execute('grep brcm_ /lib/upgrade/platform.sh >/dev/null 2>&1') == 0
@@ -105,11 +105,12 @@ function action_upgrade()
        local keepcfg = keep_avail and luci.http.formvalue("keepcfg")
 
        if plat and fname then
-               ret, err = luci.sys.flash(tmpfile, keepcfg and _keep_pattern())
+               ret = function()
+                       return luci.sys.flash(tmpfile, keepcfg and _keep_pattern())
+               end
        end
 
-       luci.template.render("admin_system/upgrade", {sysupgrade=plat,
-               ret=ret, err=err, keep_avail=keep_avail})
+       luci.template.render("mini/upgrade", {sysupgrade=plat, ret=ret, keep_avail=keep_avail})
 end
 
 function _keep_pattern()
index 40f3ec984415e1f0807f9fef74e2ee181d65aaf4..a3d97d6497c5872fb051fe4b2187ef3837e4d4b5 100644 (file)
@@ -17,7 +17,7 @@ $Id$
 <h2><%:a_s_flash%></h2>
 <p><%:a_s_flash_upgrade1%></p>
 <br />
-<% if sysupgrade and ret == nil then %>
+<% if sysupgrade and not ret then %>
 <form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
        <div class="left"><%:a_s_flash_fwimage%>:</div>
        <div>
@@ -33,14 +33,20 @@ $Id$
                <input type="submit" value="<%:a_s_flash_fwupgrade%>" />
        </div>
 </form>
-<% elseif ret ~= nil then %>
-       <% if ret then %>
-<p><%:a_s_flash_received%></p>
-<p><%:a_s_flash_inprogress%></p>
+<% elseif ret then %>
+       <p><%:a_s_flash_received%></p>
+       <p><%:a_s_flash_inprogress%></p>
+       
+<!-- <%=string.rep(" ", 2048)%> -->
+       <% %>
+       <% local ret = ret() 
+       if ret == 0 then %>
+<div class="ok"><%:a_s_flash_flashed%></div>
        <% else %>
-<div class="error"><%:a_s_flash_flasherr%>! (<%=err%>)</div>   
+<div class="error"><%:a_s_flash_flasherr%>! (<%:code%> <%=ret%>)</div> 
        <% end %>
 <% else %>
 <div class="error"><%:a_s_flash_notimplemented%></div>
 <% end %>
 <%+footer%>
+<% if ret == 0 then luci.sys.reboot() end %>