-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.lua
93 lines (83 loc) · 1.85 KB
/
main.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
local mod = {}
local code_dir = os.getenv("PWD")
local fh = nil
function mod.set_dir(dir)
code_dir = dir
end
local function file_exists(file)
local f = io.open(file)
if f then
f:close()
return true
else
return false
end
end
local save_line = trigger.add("(.*)", {gag=true, raw=true, enabled=false}, function(m, ln)
-- fh:write(m)
if ln and string.sub(ln:raw(), 1,1) ~= ":" then
fh:write(ln:raw() .. "\n")
print("LINE" .. ln:raw())
else
print("NO LINE?")
end
end)
local start_save = trigger.add("^:", {gag=true, enabled=false}, function(m, ln)
save_line:enable()
end)
local ed_quit = trigger.add("Exit from ed", {gag=true, enabled=false}, function(m, ln)
save_line:disable()
fh:close()
print("CLOSED FILE ")
fh = nil
end)
local actions = {
["send"] = function (x)
print("SEND ".. x)
local file = assert(io.open(code_dir .. "/" .. x), "r")
local line = file:read("*line")
mud.send("ed " .. x, {gag=true})
mud.send("1,$d", {gag=true})
mud.send("a", {gag=true})
while line do
mud.send(line .. "\n", {gag=true})
line = file:read("*line")
end
mud.send(".", {gag=true})
mud.send("I", {gag=true})
mud.send("w", {gag=true})
mud.send("q", {gag=true})
end,
["get"] = function (x)
print("GET ".. x)
fh = io.open(code_dir .. "/" .. x, "w")
mud.send("ed " .. x, {gag=true})
start_save:enable()
ed_quit:enable()
mud.send("1,$p", {gag=true})
mud.send("q", {gag=true})
end,
["pwd"] = function (x) print ("PWD " .. code_dir) end,
["cd"] = function (x)
if x then
code_dir = x
end
print ("CD " .. x)
end,
}
alias.add("^/lpc (.*)$",
function (subcommand)
if not subcommand[2] then
return false
end
_, _, cmd, args = subcommand[2]:find("(%a+) (.*)")
if not cmd then
_, _, cmd = subcommand[2]:find("(%a+)")
args = ""
end
if actions[cmd] then
actions[cmd](args)
end
end
)
return mod