|
@@ -1,7 +1,13 @@
|
|
|
#!/usr/bin/lua
|
|
|
|
|
|
local fs = require 'nixio.fs'
|
|
|
-local site = require 'gluon.site_config'
|
|
|
+
|
|
|
+if not fs.access('/etc/opkg/distfeeds.conf') then
|
|
|
+ os.exit(0)
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+local site = require 'gluon.site'
|
|
|
local util = require 'gluon.util'
|
|
|
|
|
|
|
|
@@ -15,11 +21,14 @@ subst['%%S'] = f:read()
|
|
|
subst['%%A'] = f:read()
|
|
|
f:close()
|
|
|
|
|
|
-subst['%%GS'] = site.site_code
|
|
|
+subst['%%GS'] = site.site_code()
|
|
|
subst['%%GV'] = util.trim(fs.readfile('/lib/gluon/gluon-version'))
|
|
|
subst['%%GR'] = util.trim(fs.readfile('/lib/gluon/release'))
|
|
|
|
|
|
-function replace_patterns(url)
|
|
|
+local prefix = subst['%%n'] .. '_'
|
|
|
+
|
|
|
+
|
|
|
+local function replace_patterns(url)
|
|
|
for k, v in pairs(subst) do
|
|
|
url = url:gsub(k, v)
|
|
|
end
|
|
@@ -28,39 +37,39 @@ function replace_patterns(url)
|
|
|
end
|
|
|
|
|
|
|
|
|
-local prefix = subst['%%n'] .. '_'
|
|
|
+local lede = site.opkg.lede()
|
|
|
+local extra = site.opkg.extra({})
|
|
|
|
|
|
-if fs.access('/etc/opkg/distfeeds.conf') then
|
|
|
- local distfeeds = {}
|
|
|
- for line in io.lines('/etc/opkg/distfeeds.conf') do
|
|
|
- table.insert(distfeeds, line)
|
|
|
- end
|
|
|
|
|
|
- local f = io.open('/etc/opkg/distfeeds.conf', 'w')
|
|
|
-
|
|
|
- for _, line in ipairs(distfeeds) do
|
|
|
- local name = line:match('^src/gz%s' .. prefix .. '(%S+)%s')
|
|
|
- if name == 'core' then
|
|
|
- f:write('# ' .. line .. '\n')
|
|
|
- elseif name and site.opkg and site.opkg.lede then
|
|
|
- f:write(string.format('src/gz %s %s/%s\n', prefix .. name, replace_patterns(site.opkg.lede), name))
|
|
|
- else
|
|
|
- f:write(line .. '\n')
|
|
|
- end
|
|
|
- end
|
|
|
+local distfeeds = {}
|
|
|
+for line in io.lines('/etc/opkg/distfeeds.conf') do
|
|
|
+ table.insert(distfeeds, line)
|
|
|
+end
|
|
|
|
|
|
- f:close()
|
|
|
+local f = io.open('/etc/opkg/distfeeds.conf', 'w')
|
|
|
|
|
|
- if site.opkg and site.opkg.extra and next(site.opkg.extra) then
|
|
|
- local f = io.open('/etc/opkg/gluon.conf', 'w')
|
|
|
+for _, line in ipairs(distfeeds) do
|
|
|
+ local name = line:match('^src/gz%s' .. prefix .. '(%S+)%s')
|
|
|
+ if name == 'core' then
|
|
|
+ f:write('# ' .. line .. '\n')
|
|
|
+ elseif name and lede then
|
|
|
+ f:write(string.format('src/gz %s %s/%s\n', prefix .. name, replace_patterns(lede), name))
|
|
|
+ else
|
|
|
+ f:write(line .. '\n')
|
|
|
+ end
|
|
|
+end
|
|
|
|
|
|
- for k, v in pairs(site.opkg.extra) do
|
|
|
- f:write(string.format('src/gz %s %s\n', k, replace_patterns(v)))
|
|
|
- end
|
|
|
+f:close()
|
|
|
|
|
|
- f:close()
|
|
|
+if next(extra) then
|
|
|
+ local f = io.open('/etc/opkg/gluon.conf', 'w')
|
|
|
|
|
|
- else
|
|
|
- os.remove('/etc/opkg/gluon.conf')
|
|
|
+ for k, v in pairs(extra) do
|
|
|
+ f:write(string.format('src/gz %s %s\n', k, replace_patterns(v)))
|
|
|
end
|
|
|
+
|
|
|
+ f:close()
|
|
|
+
|
|
|
+else
|
|
|
+ os.remove('/etc/opkg/gluon.conf')
|
|
|
end
|