59 lines
1.7 KiB
Lua
Executable File
59 lines
1.7 KiB
Lua
Executable File
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
|