Annotate

tools/make_repo.lua @ 13126:d043834f15d2

mod_http: Use RFC 7239 Forwarded header to find original client IP Prefer over X-Forwarded-* since it has an actual specification. Main practical difference is that Forwarded may carry more properties than only the IP address since it is a structured header. Since we parse it into an array, it is easier to do the logical thing and iterate backwards trough proxies until an untrusted one is encountered. Compare the handling of X-Forwarded-For. The 'secure' field now accounts for the full chain of proxies, which must be secure all the way to be considered secure.
author Kim Alvefur <zash@zash.se>
date Sat, 03 Jun 2023 17:10:04 +0200
parent 10177:e9b47fcde93c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10156
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
1 print("Getting all the available modules")
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
2 if os.execute '[ -e "./downloaded_modules" ]' then
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
3 os.execute("rm -rf downloaded_modules")
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
4 end
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
5 os.execute("hg clone https://hg.prosody.im/prosody-modules/ downloaded_modules")
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
6 local i, popen = 0, io.popen
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
7 local flag = "mod_"
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
8 if os.execute '[ -e "./repository" ]' then
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
9 os.execute("mkdir repository")
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
10 end
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
11 local pfile = popen('ls -a "downloaded_modules"')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
12 for filename in pfile:lines() do
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
13 i = i + 1
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
14 if filename:sub(1, #flag) == flag then
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
15 local file = io.open("repository/"..filename.."-scm-1.rockspec", "w")
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
16 file:write('package = "'..filename..'"', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
17 file:write('version = "scm-1"', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
18 file:write('source = {', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
19 file:write('\turl = "hg+https://hg.prosody.im/prosody-modules",', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
20 file:write('\tdir = "prosody-modules"', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
21 file:write('}', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
22 file:write('description = {', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
23 file:write('\thomepage = "https://prosody.im/",', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
24 file:write('\tlicense = "MIT"', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
25 file:write('}', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
26 file:write('dependencies = {', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
27 file:write('\t"lua >= 5.1"', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
28 file:write('}', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
29 file:write('build = {', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
30 file:write('\ttype = "builtin",', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
31 file:write('\tmodules = {', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
32 file:write('\t\t["'..filename..'.'..filename..'"] = "'..filename..'/'..filename..'.lua"', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
33 file:write('\t}', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
34 file:write('}', '\n')
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
35 file:close()
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
36 end
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
37 end
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
38 pfile:close()
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
39 os.execute("cd repository/ && luarocks-admin make_manifest ./ && chmod -R 644 ./*")
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
40 print("")
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
41 print("Done!. Modules' sources are locally available at ./downloaded_modules")
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
42 print("Repository is available at ./repository")
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
43 print("The repository contains all of prosody modules' respective rockspecs, as well as manifest files and an html Index")
1797e2e22a38 make_repo: This script creates a repository with prosody plugins' rockspecs
João Duarte <jvsDuarte08@gmail.com>
parents:
diff changeset
44 print("You can now either point your server to this folder, or copy its contents to another configured folder.")