and_cesbo icon

Astra. Import config to Astra 5

and_cesbo | PRO | 04/27/16 06:28:18 AM UTC | 0 ⭐ | 885 👁️ | Never ⏰ | []
Lua |

1.95 KB

|

None

|

0 👍

/

0 👎

--
-- Installation:
-- 1. Install Astra: https://cesbo.com/astra/quick-start/
-- 2. Save script into /etc/astra/import.lua
--
-- Usage:
-- astra /etc/astra/import.lua file ...
-- Script reads files sequentially and writes it into /tmp/astra-import.conf
-- If file exists script appends new config to it
--
 
output = "/tmp/astra-import.conf"
 
scripts = {}
config = {}
options = {
    ["*"] = function(idx)
        local filename = argv[idx]
        if utils.stat(filename).type == "file" then
            table.insert(scripts, argv[idx])
        end
        return 0
    end,
}
 
function import()
    if #scripts == 0 then
        if #config.dvb_tune == 0 then config.dvb_tune = nil end
        if #config.softcam == 0 then config.softcam = nil end
        if #config.make_stream == 0 then config.make_stream = nil end
 
        json.save(output, config)
 
        log.info("done")
        astra.exit()
        return nil
    end
 
    local s = table.remove(scripts, 1)
    local f = io.open(s, "r")
    local c = f:read("*all")
    f:close()
 
    local r = import_config({ gid = config.gid, data = c })
    if r.error then
        log.error(s .. ": " .. r.error)
        astra.exit()
        return nil
    end
 
    config.gid = r.gid
 
    local function table_merge(key)
        local src = r[key]
        local dst = config[key]
        if src then
            for _,x in ipairs(src) do
                table.insert(dst, x)
            end
        end
    end
 
    table_merge("dvb_tune")
    table_merge("softcam")
    table_merge("make_stream")
 
    import()
end
 
function main()
    if utils.stat(output).type == "file" then
        config = json.load(output)
    end
 
    if not config.gid then config.gid = 466560 end
    if not config.make_stream then config.make_stream = {} end
    if not config.dvb_tune then config.dvb_tune = {} end
    if not config.softcam then config.softcam = {} end
 
    import()
end

Comments