Mercurial > prosody-hg
annotate tools/make_repo.lua @ 13491:cf367ab36fcc
util.prosodyctl: Use notify socket to wait for Prosody to be ready
Previously, prosodyctl only waits for the pidfile to appear, which does
not necessarily mean that Prosody is fully ready to receive traffic.
By waiting until Prosody says it's ready via the systemd notify socket
we know for sure that Prosody is really ready.
Notably this should ensure that when running `make integration-test`
Prosody is really ready when Scansion starts running tests.
Not sure if this timeout handling is optimal.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 19 May 2024 13:06:55 +0200 |
| parents | e9b47fcde93c |
| children |
| 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.") |
