Compare commits

..

No commits in common. "master" and "v0.1.0" have entirely different histories.

16 changed files with 58 additions and 285 deletions

View File

@ -1,9 +0,0 @@
kind: pipeline
name: default
steps:
- name: test
image: "xena/lua:5.3"
commands:
- luarocks-5.3 install --only-deps ./ln-0.2.0-1.rockspec
- busted-5.3

1
.envrc
View File

@ -1 +0,0 @@
eval "$(lorri direnv)"

1
.gitignore vendored
View File

@ -1 +0,0 @@
result

View File

@ -1,7 +0,0 @@
run = (cmd) ->
status = os.execute cmd
unless status
error string.format "got nonzero exit status %d", status
run "./test.sh"
run "nix-build"

View File

@ -55,22 +55,3 @@ local lgr = ln.Logger:new()
lgr:log {foo = "bar"}
-- time="2019-12-25T13:27:32" foo=bar
```
Or custom filters
```lua
local lgr = ln.Logger:new {
filters = {
function(message)
if string.find(message, "debug=true") and os.getenv("DEBUG") ~= "YES" then
return false
end
end,
print,
}
}
lgr:log {debug = "true", line = "PRIVMSG #foo :bar", dir = "out"}
```
This will make the log line only show up when `DEBUG` is set to `"YES"`.

View File

@ -1,23 +0,0 @@
{ pkgs ? import <nixpkgs> { }, lua ? pkgs.lua5_3
, luaPackages ? pkgs.lua53Packages }:
with pkgs;
with luaPackages;
buildLuarocksPackage {
pname = "ln";
version = "0.2.1-2";
src = fetchurl {
url = "https://luarocks.org/ln-0.2.1-2.src.rock";
sha256 = "1hb1vw68w407y05nprp352c0di6iybz4gjdhc0p521cpif4l8i1l";
};
propagatedBuildInputs = [ lua dkjson ];
meta = with lib; {
homepage = "https://tulpa.dev/cadey/lua-ln";
description = "The natural log function";
license.fullName = "0bsd";
};
}

View File

@ -9,7 +9,7 @@ description = {
summary = "The natural log function"
}
dependencies = {
"lua ~> 5.1",
"lua ~> 5.3",
"dkjson"
}
build = {

View File

@ -1,21 +0,0 @@
package = "ln"
version = "0.1.0-1"
source = {
url = "git+https://tulpa.dev/cadey/lua-ln",
tag = "v0.1.0"
}
description = {
summary = "The natural log function",
homepage = "https://tulpa.dev/cadey/lua-ln",
license = "0bsd"
}
dependencies = {
"lua ~> 5.3",
"dkjson"
}
build = {
type = "builtin",
modules = {
ln = "src/ln.lua"
}
}

View File

@ -1,21 +0,0 @@
package = "ln"
version = "0.2.0-1"
source = {
url = "git+https://tulpa.dev/cadey/lua-ln",
tag = "v0.2.0"
}
description = {
summary = "The natural log function",
homepage = "https://tulpa.dev/cadey/lua-ln",
license = "0bsd"
}
dependencies = {
"lua ~> 5.3",
"dkjson"
}
build = {
type = "builtin",
modules = {
ln = "src/ln.lua"
}
}

View File

@ -1,20 +0,0 @@
package = "ln"
version = "0.2.1-1"
source = {
url = "git+https://tulpa.dev/cadey/lua-ln"
}
description = {
homepage = "https://tulpa.dev/cadey/lua-ln",
license = "0bsd",
summary = "The natural log function"
}
dependencies = {
"lua ~> 5.1",
"dkjson"
}
build = {
type = "builtin",
modules = {
ln = "src/ln.lua"
}
}

View File

@ -1,20 +0,0 @@
package = "ln"
version = "0.2.1-2"
source = {
url = "git+https://tulpa.dev/cadey/lua-ln"
}
description = {
homepage = "https://tulpa.dev/cadey/lua-ln",
license = "0bsd",
summary = "The natural log function"
}
dependencies = {
"lua",
"dkjson"
}
build = {
type = "builtin",
modules = {
ln = "src/ln.lua"
}
}

View File

@ -1,13 +0,0 @@
{ pkgs ? import <nixpkgs> { } }:
let lua = pkgs.lua5_3.withPackages (ps: with ps; [ dkjson ]);
in pkgs.mkShell {
buildInputs = with pkgs;
with lua53Packages; [
luarocks-nix
lua
busted
moonscript
];
}

View File

@ -1,106 +1,62 @@
local ln = require "ln"
describe("ln", function()
describe("exports", function()
it("has Logger", function()
assert.truthy(ln.Logger)
end)
describe("exports", function()
it("has Logger", function()
assert.truthy(ln.Logger)
end)
it("has default_logger", function()
assert.truthy(ln.default_logger)
assert.truthy(ln.default_logger.formatter)
assert.truthy(ln.default_logger.filters)
end)
it("has default_logger", function()
assert.truthy(ln.default_logger)
end)
it("has LogfmtFormatter", function()
assert.truthy(ln.LogfmtFormatter)
end)
it("has LogfmtFormatter", function()
assert.truthy(ln.LogfmtFormatter)
end)
it("has JSONFormatter", function()
assert.truthy(ln.JSONFormatter)
end)
it("has JSONFormatter", function()
assert.truthy(ln.JSONFormatter)
end)
it("has log", function()
assert.truthy(ln.log)
end)
it("has log", function()
assert.truthy(ln.log)
end)
it("has err", function()
assert.truthy(ln.err)
end)
end)
it("has err", function()
assert.truthy(ln.err)
end)
end)
describe("default logger operations", function()
local lgr = ln.default_logger
local msg
lgr.filters = {
function(message) msg = message end,
}
describe("default logger operations", function()
local lgr = ln.default_logger
it("can log", function()
lgr:log {foo = "bar"}
end)
it("can log", function()
lgr:log {foo = "bar"}
assert.truthy(string.find(msg, 'foo=bar'))
end)
it("can error", function()
lgr:err("vibe check failed", {foo = "bar"})
end)
it("can error", function()
lgr:err("vibe check failed", {foo = "baz"})
assert.truthy(string.find(msg, 'foo=baz'))
assert.truthy(string.find(msg, 'vibe check failed'))
end)
it("takes multiple tables", function()
lgr:log({foo = "bar"}, {baz = "boz"})
end)
it("takes multiple tables", function()
lgr:log({foo = "bar"}, {baz = "boz"})
assert.truthy(string.find(msg, 'foo=bar'))
assert.truthy(string.find(msg, 'baz=boz'))
end)
it("lets you override the formatter", function()
lgr.formatter = ln.JSONFormatter:new()
lgr:log {foo = "bar"}
end)
end)
it("lets you override the formatter", function()
lgr.formatter = ln.JSONFormatter:new()
lgr:log {foo = "bar"}
assert.truthy(string.find(msg, "{"))
end)
end)
describe("logfmt", function()
local fmtr = ln.LogfmtFormatter:new()
describe("logfmt", function()
local fmtr = ln.LogfmtFormatter:new()
it("should return a non-nil message", function()
assert.truthy(fmtr:format({foo = "bar"}))
end)
it("should return a non-nil message", function()
assert.truthy(fmtr:format({foo = "bar"}))
end)
it("should have spaces when the input does", function()
local msg = fmtr:format {foo = "bar with spaces"}
assert.truthy(string.find(msg, 'foo="bar with spaces"'))
end)
end)
describe("logger options", function()
local msg
local filter_func = function(message) msg = message end
local lgr = ln.Logger:new {
formatter = ln.LogfmtFormatter:new(),
filters = {
filter_func,
}
}
it("sets the formatter to non-nil", function()
assert.truthy(lgr.formatter)
end)
it("respects filters", function()
lgr:log {foo = "bar"}
assert.truthy(string.find(msg, 'foo=bar'))
end)
it("ends if a filter returns non-nil", function()
msg = nil
lgr.filters = {
function(message) return false end,
filter_func,
}
lgr:log {foo = "bar"}
assert.falsy(msg)
end)
end)
it("should have spaces when the input does", function()
local msg = fmtr:format {foo = "bar with spaces"}
assert.truthy(string.find(msg, 'foo="bar with spaces"'))
end)
end)
end)

View File

@ -1,12 +0,0 @@
ln = require "ln"
describe "moonscript tests", ->
lgr = ln.default_logger
msg = ""
lgr.filters = {
(message) -> msg = message,
}
it "can log", ->
ln.log {foo: "bar"}
assert.truthy string.find msg, "foo=bar"

View File

@ -63,27 +63,18 @@ function Logger:log(...)
end
end
local message = self.formatter:format(result)
for _, v in pairs(self.filters) do
if v(message) ~= nil then
return
end
end
message = self.formatter:format(result)
print(message)
end
function Logger:new(o)
if o == nil then
o = {}
function Logger:new(formatter)
if formatter == nil then
formatter = LogfmtFormatter:new()
end
if o.formatter == nil then
o.formatter = LogfmtFormatter:new()
end
if o.filters == nil then
o.filters = {print}
end
local o = {
formatter = formatter,
}
setmetatable(o, self)
self.__index = self
return o

11
test.sh
View File

@ -1,10 +1,3 @@
#!/usr/bin/env bash
set -e
set -x
nix-shell -p lua5_1 -p lua51Packages.busted -p lua51Packages.moonscript --run "busted"
nix-shell -p lua5_2 -p lua52Packages.busted -p lua52Packages.moonscript --run "busted"
nix-shell -p lua5_3 -p lua53Packages.busted -p lua53Packages.moonscript --run "busted"
nix-shell -p luajit -p luajitPackages.busted -p luajitPackages.moonscript --run "busted"
#!/bin/sh
busted --defer-print