Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --
- -- 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
Advertisement
Add Comment
Please, Sign In to add comment