checkcmd implemented
This commit is contained in:
parent
e7436e07a0
commit
3b140b6953
|
@ -6526,6 +6526,9 @@ if pandoc ~= nil then
|
||||||
RawInline = function(rawinline)
|
RawInline = function(rawinline)
|
||||||
return pandoc.Str(rawinline.text:gsub("\\n", "\n"):gsub("\\t", "\t"))
|
return pandoc.Str(rawinline.text:gsub("\\n", "\n"):gsub("\\t", "\t"))
|
||||||
end,
|
end,
|
||||||
|
SoftBreak = function(softbreak)
|
||||||
|
return pandoc.Str("\n")
|
||||||
|
end,
|
||||||
Inline = function(inline) return pandoc.utils.stringify(inline) end,
|
Inline = function(inline) return pandoc.utils.stringify(inline) end,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
@ -6641,8 +6644,11 @@ function lit.puts(key, ...)
|
||||||
local msg = pandoc.metatotable(pandoc.read([[---
|
local msg = pandoc.metatotable(pandoc.read([[---
|
||||||
INFO:
|
INFO:
|
||||||
checking:
|
checking:
|
||||||
en: Checking:\n#1
|
en: "Checking:\n#1"
|
||||||
es: Comprobando:\n#1
|
es: "Comprobando:\n#1"
|
||||||
|
skip_check:
|
||||||
|
en: "Skipping '#1': this check is not supported"
|
||||||
|
es: "Skipping '#1': esta comprobación no está soportada"
|
||||||
WARNING:
|
WARNING:
|
||||||
foo:
|
foo:
|
||||||
en: bar
|
en: bar
|
||||||
|
@ -6660,6 +6666,9 @@ ERROR:
|
||||||
invalid_value:
|
invalid_value:
|
||||||
en: Invalid value '#1' in key '#2'
|
en: Invalid value '#1' in key '#2'
|
||||||
es: Valor '#1' inválido en clave '#2'
|
es: Valor '#1' inválido en clave '#2'
|
||||||
|
invalid_cmd:
|
||||||
|
en: Invalid cmd '#1'
|
||||||
|
es: Comando '#1' inválido
|
||||||
no_key:
|
no_key:
|
||||||
en: Key '#1' not found
|
en: Key '#1' not found
|
||||||
es: Clave '#1' no encontrada
|
es: Clave '#1' no encontrada
|
||||||
|
@ -6719,6 +6728,19 @@ function lit.exam(doc)
|
||||||
|
|
||||||
-- Checks code block
|
-- Checks code block
|
||||||
local function check(parsed)
|
local function check(parsed)
|
||||||
|
|
||||||
|
-- Checks for valid command
|
||||||
|
local function checkcmd(meta)
|
||||||
|
if meta["cmd"] then
|
||||||
|
cmd = meta["cmd"]:split()[1]
|
||||||
|
if os.isunix() then
|
||||||
|
status = io.try("type", cmd)
|
||||||
|
if not(status) then lit.puts("invalid_cmd", cmd) end
|
||||||
|
else
|
||||||
|
lit.puts("skip_check", "checkcmd")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Checks for extra and unwanted metadata
|
-- Checks for extra and unwanted metadata
|
||||||
local function checkextra(meta)
|
local function checkextra(meta)
|
||||||
|
@ -6784,7 +6806,10 @@ function lit.exam(doc)
|
||||||
checkmeta(meta, "mandatory")
|
checkmeta(meta, "mandatory")
|
||||||
checkmeta(meta, "optional")
|
checkmeta(meta, "optional")
|
||||||
checkextra(meta)
|
checkextra(meta)
|
||||||
-- TODO: checks for duplicates
|
checkcmd(meta)
|
||||||
|
-- TODO: checks for
|
||||||
|
-- with lang and cmd (warn)
|
||||||
|
-- overrides (warn)
|
||||||
elseif isok and pandoc.utils.stringify(res.meta):isempty() then
|
elseif isok and pandoc.utils.stringify(res.meta):isempty() then
|
||||||
lit.puts("meta_empty")
|
lit.puts("meta_empty")
|
||||||
else
|
else
|
||||||
|
|
|
@ -265,6 +265,9 @@ if pandoc ~= nil then
|
||||||
RawInline = function(rawinline)
|
RawInline = function(rawinline)
|
||||||
return pandoc.Str(rawinline.text:gsub("\\n", "\n"):gsub("\\t", "\t"))
|
return pandoc.Str(rawinline.text:gsub("\\n", "\n"):gsub("\\t", "\t"))
|
||||||
end,
|
end,
|
||||||
|
SoftBreak = function(softbreak)
|
||||||
|
return pandoc.Str("\n")
|
||||||
|
end,
|
||||||
Inline = function(inline) return pandoc.utils.stringify(inline) end,
|
Inline = function(inline) return pandoc.utils.stringify(inline) end,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
|
@ -120,6 +120,19 @@ function lit.exam(doc)
|
||||||
|
|
||||||
-- Checks code block
|
-- Checks code block
|
||||||
local function check(parsed)
|
local function check(parsed)
|
||||||
|
|
||||||
|
-- Checks for valid command
|
||||||
|
local function checkcmd(meta)
|
||||||
|
if meta["cmd"] then
|
||||||
|
cmd = meta["cmd"]:split()[1]
|
||||||
|
if os.isunix() then
|
||||||
|
status = io.try("type", cmd)
|
||||||
|
if not(status) then lit.puts("invalid_cmd", cmd) end
|
||||||
|
else
|
||||||
|
lit.puts("skip_check", "checkcmd")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Checks for extra and unwanted metadata
|
-- Checks for extra and unwanted metadata
|
||||||
local function checkextra(meta)
|
local function checkextra(meta)
|
||||||
|
@ -185,7 +198,10 @@ function lit.exam(doc)
|
||||||
checkmeta(meta, "mandatory")
|
checkmeta(meta, "mandatory")
|
||||||
checkmeta(meta, "optional")
|
checkmeta(meta, "optional")
|
||||||
checkextra(meta)
|
checkextra(meta)
|
||||||
-- TODO: checks for duplicates
|
checkcmd(meta)
|
||||||
|
-- TODO: checks for
|
||||||
|
-- with lang and cmd (warn)
|
||||||
|
-- overrides (warn)
|
||||||
elseif isok and pandoc.utils.stringify(res.meta):isempty() then
|
elseif isok and pandoc.utils.stringify(res.meta):isempty() then
|
||||||
lit.puts("meta_empty")
|
lit.puts("meta_empty")
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
---
|
---
|
||||||
INFO:
|
INFO:
|
||||||
checking:
|
checking:
|
||||||
en: Checking:\n#1
|
en: "Checking:\n#1"
|
||||||
es: Comprobando:\n#1
|
es: "Comprobando:\n#1"
|
||||||
|
skip_check:
|
||||||
|
en: "Skipping '#1': this check is not supported"
|
||||||
|
es: "Skipping '#1': esta comprobación no está soportada"
|
||||||
WARNING:
|
WARNING:
|
||||||
foo:
|
foo:
|
||||||
en: bar
|
en: bar
|
||||||
|
@ -20,6 +23,9 @@ ERROR:
|
||||||
invalid_value:
|
invalid_value:
|
||||||
en: Invalid value '#1' in key '#2'
|
en: Invalid value '#1' in key '#2'
|
||||||
es: Valor '#1' inválido en clave '#2'
|
es: Valor '#1' inválido en clave '#2'
|
||||||
|
invalid_cmd:
|
||||||
|
en: Invalid cmd '#1'
|
||||||
|
es: Comando '#1' inválido
|
||||||
no_key:
|
no_key:
|
||||||
en: Key '#1' not found
|
en: Key '#1' not found
|
||||||
es: Clave '#1' no encontrada
|
es: Clave '#1' no encontrada
|
||||||
|
|
|
@ -8,13 +8,13 @@ Malformed YAML:
|
||||||
id: fn1
|
id: fn1
|
||||||
fail
|
fail
|
||||||
...
|
...
|
||||||
1 + 2 + 3
|
1 + 1
|
||||||
|
|
||||||
Empty YAML:
|
Empty YAML:
|
||||||
|
|
||||||
---
|
---
|
||||||
...
|
...
|
||||||
1 + 2 + 3
|
1 + 1
|
||||||
|
|
||||||
Empty YAML and code:
|
Empty YAML and code:
|
||||||
|
|
||||||
|
@ -26,28 +26,28 @@ Misses id:
|
||||||
---
|
---
|
||||||
identifier: fn1
|
identifier: fn1
|
||||||
...
|
...
|
||||||
1 + 2 + 3
|
1 + 1
|
||||||
|
|
||||||
Wrong id (doesn't starts with `%a`):
|
Wrong id (doesn't starts with `%a`):
|
||||||
|
|
||||||
---
|
---
|
||||||
id: 1
|
id: 1
|
||||||
...
|
...
|
||||||
1 + 2 + 3
|
1 + 1
|
||||||
|
|
||||||
Wrong id (doesn't follows with `[_%w]`):
|
Wrong id (doesn't follows with `[_%w]`):
|
||||||
|
|
||||||
---
|
---
|
||||||
id: f-1
|
id: f-1
|
||||||
...
|
...
|
||||||
1 + 2 + 3
|
1 + 1
|
||||||
|
|
||||||
Wrong id (more than 1 word):
|
Wrong id (more than 1 word):
|
||||||
|
|
||||||
---
|
---
|
||||||
id: f n1
|
id: f n1
|
||||||
...
|
...
|
||||||
1 + 2 + 3
|
1 + 1
|
||||||
|
|
||||||
Invalid value:
|
Invalid value:
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ Invalid value:
|
||||||
id: fn1
|
id: fn1
|
||||||
shift: "true"
|
shift: "true"
|
||||||
...
|
...
|
||||||
Invalid shift value
|
1 + 1
|
||||||
|
|
||||||
Invalid path:
|
Invalid path:
|
||||||
|
|
||||||
|
@ -63,18 +63,31 @@ Invalid path:
|
||||||
id: fn1
|
id: fn1
|
||||||
dump: invalid/path.txt
|
dump: invalid/path.txt
|
||||||
...
|
...
|
||||||
Invalid dump value
|
1 + 1
|
||||||
|
|
||||||
Extra key:
|
Extra key:
|
||||||
|
|
||||||
---
|
---
|
||||||
id: fn1
|
id: fn1
|
||||||
language: fennel
|
language: fennel
|
||||||
args:
|
|
||||||
a: 1
|
|
||||||
b: 2
|
|
||||||
...
|
...
|
||||||
(* #a #b)
|
1 + 1
|
||||||
|
|
||||||
|
Uknown lang:
|
||||||
|
|
||||||
|
---
|
||||||
|
id: fn1
|
||||||
|
lang: fail
|
||||||
|
...
|
||||||
|
1 + 1
|
||||||
|
|
||||||
|
Uknown cmd:
|
||||||
|
|
||||||
|
---
|
||||||
|
id: fn1
|
||||||
|
cmd: piton -E -X utf8
|
||||||
|
...
|
||||||
|
1 + 1
|
||||||
|
|
||||||
Empty code:
|
Empty code:
|
||||||
|
|
||||||
|
@ -96,16 +109,6 @@ Invalid code:
|
||||||
...
|
...
|
||||||
false + false
|
false + false
|
||||||
|
|
||||||
Uknown cmd:
|
|
||||||
|
|
||||||
---
|
|
||||||
id: fn1
|
|
||||||
cmd: piton -E -X utf8
|
|
||||||
args:
|
|
||||||
n: 2
|
|
||||||
...
|
|
||||||
#n + #n
|
|
||||||
|
|
||||||
Infinite loop:
|
Infinite loop:
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
@ -3,14 +3,23 @@
|
||||||
---
|
---
|
||||||
id: fn1
|
id: fn1
|
||||||
...
|
...
|
||||||
1 + 2 + 3
|
1 + 1
|
||||||
|
|
||||||
Override:
|
Override:
|
||||||
|
|
||||||
---
|
---
|
||||||
id: fn1
|
id: fn1
|
||||||
...
|
...
|
||||||
4 + 5 + 6
|
1 + 2
|
||||||
|
|
||||||
|
# Block with Language and Command
|
||||||
|
|
||||||
|
---
|
||||||
|
id: fn4
|
||||||
|
lang: python
|
||||||
|
cmd: python -E -X utf8
|
||||||
|
...
|
||||||
|
1 + 1
|
||||||
|
|
||||||
# Block with Unused Argument
|
# Block with Unused Argument
|
||||||
|
|
||||||
|
@ -19,22 +28,4 @@ Override:
|
||||||
args:
|
args:
|
||||||
a: 1
|
a: 1
|
||||||
...
|
...
|
||||||
7 + 8 + 9
|
1 + 1
|
||||||
|
|
||||||
# Block with Language and Command
|
|
||||||
|
|
||||||
---
|
|
||||||
id: fn4
|
|
||||||
lang: python
|
|
||||||
cmd: python -E -X utf8
|
|
||||||
args:
|
|
||||||
n: 2
|
|
||||||
...
|
|
||||||
#n * #n
|
|
||||||
|
|
||||||
# Block with Unknown Language
|
|
||||||
|
|
||||||
---
|
|
||||||
id: fn5
|
|
||||||
...
|
|
||||||
"Lang becomes cmd."
|
|
||||||
|
|
Loading…
Reference in New Issue