add base setup with dotter

This commit is contained in:
Alexander Navarro 2024-11-08 22:53:56 +00:00 committed by aleidk
parent 6b0da868bb
commit 42e6595b60
177 changed files with 1062 additions and 70 deletions

49
config/river/logger.lua Normal file
View file

@ -0,0 +1,49 @@
--- Logger interface
---@class Logger
---@field available_outputs table<string, file*> Available outputs to use in the logger
---@field output file* The open file to write to
local Logger = {
available_outputs = {
stdout = io.stdout
},
output = io.stdout
}
Logger.__index = Logger
--- Create a new logger instance
---@param output? file* io.stdout by default, [see Logger.available_outputs](lua://Logger.available_outputs) for possible values
---@return Logger
function Logger:new(output)
local obj = {
output = output or Logger.available_outputs.stdout
}
setmetatable(obj, self)
self.__index = self
self:open()
return obj
end
function Logger:open()
self:log("\n\n")
self:log("Opening logger...\n")
end
function Logger:close()
self:log("Closing logger...")
self:log("\n\n")
self.output:close()
end
--- Write data to ouput, it passes the arguments directly to file:write(...)
---@param ... string|number the data to write
function Logger:log(...)
self.output:write(...)
self.output:write("\n")
self.output:flush()
end
return Logger