Comparison

tools/make_repo.lua @ 10210:9fdda9fafc3c

Merge mod-installer (2019 GSoC by João Duarte)
author Matthew Wild <mwild1@gmail.com>
date Mon, 19 Aug 2019 12:17:17 +0100
parent 10177:e9b47fcde93c
comparison
equal deleted inserted replaced
10121:33f287519bf6 10210:9fdda9fafc3c
1 print("Getting all the available modules")
2 if os.execute '[ -e "./downloaded_modules" ]' then
3 os.execute("rm -rf downloaded_modules")
4 end
5 os.execute("hg clone https://hg.prosody.im/prosody-modules/ downloaded_modules")
6 local i, popen = 0, io.popen
7 local flag = "mod_"
8 if os.execute '[ -e "./repository" ]' then
9 os.execute("mkdir repository")
10 end
11 local pfile = popen('ls -a "downloaded_modules"')
12 for filename in pfile:lines() do
13 i = i + 1
14 if filename:sub(1, #flag) == flag then
15 local file = io.open("repository/"..filename.."-scm-1.rockspec", "w")
16 file:write('package = "'..filename..'"', '\n')
17 file:write('version = "scm-1"', '\n')
18 file:write('source = {', '\n')
19 file:write('\turl = "hg+https://hg.prosody.im/prosody-modules",', '\n')
20 file:write('\tdir = "prosody-modules"', '\n')
21 file:write('}', '\n')
22 file:write('description = {', '\n')
23 file:write('\thomepage = "https://prosody.im/",', '\n')
24 file:write('\tlicense = "MIT"', '\n')
25 file:write('}', '\n')
26 file:write('dependencies = {', '\n')
27 file:write('\t"lua >= 5.1"', '\n')
28 file:write('}', '\n')
29 file:write('build = {', '\n')
30 file:write('\ttype = "builtin",', '\n')
31 file:write('\tmodules = {', '\n')
32 file:write('\t\t["'..filename..'.'..filename..'"] = "'..filename..'/'..filename..'.lua"', '\n')
33 file:write('\t}', '\n')
34 file:write('}', '\n')
35 file:close()
36 end
37 end
38 pfile:close()
39 os.execute("cd repository/ && luarocks-admin make_manifest ./ && chmod -R 644 ./*")
40 print("")
41 print("Done!. Modules' sources are locally available at ./downloaded_modules")
42 print("Repository is available at ./repository")
43 print("The repository contains all of prosody modules' respective rockspecs, as well as manifest files and an html Index")
44 print("You can now either point your server to this folder, or copy its contents to another configured folder.")