59 lines
1.7 KiB
Lua
59 lines
1.7 KiB
Lua
|
local fs = require("nixio.fs")
|
|||
|
local nixio = require("nixio")
|
|||
|
local ecos = require("xiaoqiang.module.XQEcos")
|
|||
|
|
|||
|
local mac = arg[1]
|
|||
|
|
|||
|
function wget(link, filepath)
|
|||
|
local xqcrypto = require("xiaoqiang.util.XQCryptoUtil")
|
|||
|
local download = "wget -t3 -T30 '"..link.."' -O "..filepath
|
|||
|
os.execute(download)
|
|||
|
return xqcrypto.md5File(filepath)
|
|||
|
end
|
|||
|
|
|||
|
function echo(mac, status)
|
|||
|
if mac and status then
|
|||
|
local sfile = "/tmp/"..mac
|
|||
|
os.execute("echo "..status.." > "..sfile)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
-- 1: 正在处理
|
|||
|
-- 2: 没有ECOS设备,不能升级
|
|||
|
-- 3: 该ECOS设备,没有升级信息
|
|||
|
-- 4: ECOS升级包下载失败
|
|||
|
-- 5: 刷写ECOS升级包失败
|
|||
|
-- 6: 升级成功
|
|||
|
-- 7: 签名校验失败
|
|||
|
if mac then
|
|||
|
echo(mac, "1")
|
|||
|
local dev = ecos._getEcosDevices()[mac]
|
|||
|
if dev then
|
|||
|
local check = ecos._getEcosUpgrade(dev.version, dev.channel, dev.sn, dev.ctycode)
|
|||
|
if check then
|
|||
|
local tfile = "/tmp/"..check.fullHash..".img"
|
|||
|
if wget(check.downloadUrl, tfile) == check.fullHash then
|
|||
|
local ret = os.execute("cd /tmp && mk_ecos_image -x "..tfile)
|
|||
|
if ret ~= 0 then
|
|||
|
echo(mac, "7")
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
local code = os.execute("tbus postfile "..dev.ip.." ".."/tmp/eCos.img")
|
|||
|
if code ~= 0 then
|
|||
|
echo(mac, "5")
|
|||
|
else
|
|||
|
echo(mac, "6")
|
|||
|
end
|
|||
|
else
|
|||
|
echo(mac, "4")
|
|||
|
end
|
|||
|
os.execute("rm /tmp/eCos.img "..tfile.." 2>/dev/null >/dev/null")
|
|||
|
else
|
|||
|
echo(mac, "3")
|
|||
|
end
|
|||
|
else
|
|||
|
echo(mac, "2")
|
|||
|
end
|
|||
|
end
|