Software /
code /
prosody
Annotate
util/mercurial.lua @ 11409:d30c44a829c1
net.http.server: Set request.ip so mod_http doesn't have to
Because it already sets request.secure, which depends on the connection,
just like the IP, so it makes sense to do both in the same place.
Dealing with proxies can be left to mod_http for now, but maybe it could
move into some util some day?
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 27 Feb 2021 21:37:16 +0100 |
parent | 10533:a6cc5b844d7b |
rev | line source |
---|---|
6585
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 local lfs = require"lfs"; |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 local hg = { }; |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 function hg.check_id(path) |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 if lfs.attributes(path, 'mode') ~= "directory" then |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 return nil, "not a directory"; |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 end |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 local hg_dirstate = io.open(path.."/.hg/dirstate"); |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 local hgid, hgrepo |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 if hg_dirstate then |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 hgid = ("%02x%02x%02x%02x%02x%02x"):format(hg_dirstate:read(6):byte(1, 6)); |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 hg_dirstate:close(); |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 local hg_changelog = io.open(path.."/.hg/store/00changelog.i"); |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 if hg_changelog then |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 hg_changelog:seek("set", 0x20); |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 hgrepo = ("%02x%02x%02x%02x%02x%02x"):format(hg_changelog:read(6):byte(1, 6)); |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 hg_changelog:close(); |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 end |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 else |
10533
a6cc5b844d7b
util.mercurial: Ignore an unused error variable [luacheck]
Kim Alvefur <zash@zash.se>
parents:
6585
diff
changeset
|
22 local hg_archival,e = io.open(path.."/.hg_archival.txt"); -- luacheck: ignore 211/e |
6585
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 if hg_archival then |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 local repo = hg_archival:read("*l"); |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 local node = hg_archival:read("*l"); |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 hg_archival:close() |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 hgid = node and node:match("^node: (%x%x%x%x%x%x%x%x%x%x%x%x)") |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 hgrepo = repo and repo:match("^repo: (%x%x%x%x%x%x%x%x%x%x%x%x)") |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 end |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 end |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 return hgid, hgrepo; |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 end |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 |
ec94dc502113
util.mercurial: Utility functions for Mercurial repositories
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 return hg; |