1 print("Getting all the available modules")
2 if os
.execute '[ -e "./downloaded_modules" ]' then
3 os
.execute("rm -rf downloaded_modules")
5 os
.execute("hg clone https://hg.prosody.im/prosody-modules/ downloaded_modules")
6 local i
, popen
= 0, io
.popen
8 if os
.execute '[ -e "./repository" ]' then
9 os
.execute("mkdir repository")
11 local pfile
= popen('ls -a "downloaded_modules"')
12 for filename
in pfile
:lines() do
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')
22 file
:write('description = {', '\n')
23 file
:write('\thomepage = "https://prosody.im/",', '\n')
24 file
:write('\tlicense = "MIT"', '\n')
26 file
:write('dependencies = {', '\n')
27 file
:write('\t"lua >= 5.1"', '\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')
39 os
.execute("cd repository/ && luarocks-admin make_manifest ./ && chmod -R 644 ./*")
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.")