File

tools/make_repo.lua @ 10711:d2e4584ba7b3

spec: Add test cases for util.http.contains_token
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Fri, 10 Apr 2020 20:20:14 +0200
parent 10177:e9b47fcde93c
line wrap: on
line source

print("Getting all the available modules")
if os.execute '[ -e "./downloaded_modules" ]' then
	os.execute("rm -rf downloaded_modules")
end
os.execute("hg clone https://hg.prosody.im/prosody-modules/ downloaded_modules")
local i, popen = 0, io.popen
local flag = "mod_"
if os.execute '[ -e "./repository" ]' then
	os.execute("mkdir repository")
end
local pfile = popen('ls -a "downloaded_modules"')
for filename in pfile:lines() do
	i = i + 1
	if filename:sub(1, #flag) == flag then
		local file = io.open("repository/"..filename.."-scm-1.rockspec", "w")
		file:write('package = "'..filename..'"', '\n')
		file:write('version = "scm-1"', '\n')
		file:write('source = {', '\n')
		file:write('\turl = "hg+https://hg.prosody.im/prosody-modules",', '\n')
		file:write('\tdir = "prosody-modules"', '\n')
		file:write('}', '\n')
		file:write('description = {', '\n')
		file:write('\thomepage = "https://prosody.im/",', '\n')
		file:write('\tlicense = "MIT"', '\n')
		file:write('}', '\n')
		file:write('dependencies = {', '\n')
		file:write('\t"lua >= 5.1"', '\n')
		file:write('}', '\n')
		file:write('build = {', '\n')
		file:write('\ttype = "builtin",', '\n')
		file:write('\tmodules = {', '\n')
		file:write('\t\t["'..filename..'.'..filename..'"] = "'..filename..'/'..filename..'.lua"', '\n')
		file:write('\t}', '\n')
		file:write('}', '\n')
		file:close()
	end
end
pfile:close()
os.execute("cd repository/ && luarocks-admin make_manifest ./ && chmod -R 644 ./*")
print("")
print("Done!. Modules' sources are locally available at ./downloaded_modules")
print("Repository is available at ./repository")
print("The repository contains all of prosody modules' respective rockspecs, as well as manifest files and an html Index")
print("You can now either point your server to this folder, or copy its contents to another configured folder.")