author | Kim Alvefur <zash@zash.se> |
Sun, 24 Mar 2024 21:31:47 +0100 | |
changeset 13467 | 3ce550ce44ce |
parent 13070 | 4aa4a51a7a77 |
permissions | -rwxr-xr-x |
13067
414952def2d3
tools/tb2err: Drop use of lua-any since it should run fine on any Lua
Kim Alvefur <zash@zash.se>
parents:
11195
diff
changeset
|
1 |
#!/usr/bin/env lua |
11195
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
-- traceback to errors.err for vim -q |
13068
b172db27ffed
tools/tb2err: Add some example usage in a comment
Kim Alvefur <zash@zash.se>
parents:
13067
diff
changeset
|
3 |
-- e.g. curl https://prosody.im/paste/xxx | tb2err > errors.err && vim -q |
b172db27ffed
tools/tb2err: Add some example usage in a comment
Kim Alvefur <zash@zash.se>
parents:
13067
diff
changeset
|
4 |
|
11195
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
local path_sep = package.config:sub(1,1); |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 |
for line in io.lines() do |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 |
local src, err = line:match("%s*(%S+)(:%d+: .*)") |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 |
if src then |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 |
src = src:gsub("\\", path_sep); |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 |
local cut = src:match("/()core/") |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 |
or src:match("/()net/") |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 |
or src:match("/()util/") |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 |
or src:match("/()modules/") |
13069
ab546c5977ed
tools/tb2err: Rewrite prosody-modules paths to ../modules
Kim Alvefur <zash@zash.se>
parents:
13068
diff
changeset
|
14 |
or src:match("/()prosody%-modules/") |
11195
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 |
or src:match("/()plugins/") |
13070
4aa4a51a7a77
tools/tb2err: Trim trailing whitespace
Kim Alvefur <zash@zash.se>
parents:
13069
diff
changeset
|
16 |
or src:match("/()prosody[ctl]*$") |
11195
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 |
if cut then |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 |
src = src:sub(cut); |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 |
end |
13069
ab546c5977ed
tools/tb2err: Rewrite prosody-modules paths to ../modules
Kim Alvefur <zash@zash.se>
parents:
13068
diff
changeset
|
20 |
src = src:gsub("prosody%-modules/", "../modules/") |
11195
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 |
src = src:gsub("^modules/", "plugins/") |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 |
io.write(src, err, "\n"); |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 |
end |
13e2ac7b5798
tools/tb2err: Formats Lua traceback in errors.err format
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 |
end |