checkcmd implemented
This commit is contained in:
parent
e7436e07a0
commit
3b140b6953
|
@ -6526,6 +6526,9 @@ if pandoc ~= nil then
|
|||
RawInline = function(rawinline)
|
||||
return pandoc.Str(rawinline.text:gsub("\\n", "\n"):gsub("\\t", "\t"))
|
||||
end,
|
||||
SoftBreak = function(softbreak)
|
||||
return pandoc.Str("\n")
|
||||
end,
|
||||
Inline = function(inline) return pandoc.utils.stringify(inline) end,
|
||||
})
|
||||
end
|
||||
|
@ -6641,8 +6644,11 @@ function lit.puts(key, ...)
|
|||
local msg = pandoc.metatotable(pandoc.read([[---
|
||||
INFO:
|
||||
checking:
|
||||
en: Checking:\n#1
|
||||
es: Comprobando:\n#1
|
||||
en: "Checking:\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:
|
||||
foo:
|
||||
en: bar
|
||||
|
@ -6660,6 +6666,9 @@ ERROR:
|
|||
invalid_value:
|
||||
en: Invalid value '#1' in key '#2'
|
||||
es: Valor '#1' inválido en clave '#2'
|
||||
invalid_cmd:
|
||||
en: Invalid cmd '#1'
|
||||
es: Comando '#1' inválido
|
||||
no_key:
|
||||
en: Key '#1' not found
|
||||
es: Clave '#1' no encontrada
|
||||
|
@ -6719,6 +6728,19 @@ function lit.exam(doc)
|
|||
|
||||
-- Checks code block
|
||||
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
|
||||
local function checkextra(meta)
|
||||
|
@ -6784,7 +6806,10 @@ function lit.exam(doc)
|
|||
checkmeta(meta, "mandatory")
|
||||
checkmeta(meta, "optional")
|
||||
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
|
||||
lit.puts("meta_empty")
|
||||
else
|
||||
|
|
|
@ -265,6 +265,9 @@ if pandoc ~= nil then
|
|||
RawInline = function(rawinline)
|
||||
return pandoc.Str(rawinline.text:gsub("\\n", "\n"):gsub("\\t", "\t"))
|
||||
end,
|
||||
SoftBreak = function(softbreak)
|
||||
return pandoc.Str("\n")
|
||||
end,
|
||||
Inline = function(inline) return pandoc.utils.stringify(inline) end,
|
||||
})
|
||||
end
|
||||
|
|
|
@ -120,6 +120,19 @@ function lit.exam(doc)
|
|||
|
||||
-- Checks code block
|
||||
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
|
||||
local function checkextra(meta)
|
||||
|
@ -185,7 +198,10 @@ function lit.exam(doc)
|
|||
checkmeta(meta, "mandatory")
|
||||
checkmeta(meta, "optional")
|
||||
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
|
||||
lit.puts("meta_empty")
|
||||
else
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
---
|
||||
INFO:
|
||||
checking:
|
||||
en: Checking:\n#1
|
||||
es: Comprobando:\n#1
|
||||
en: "Checking:\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:
|
||||
foo:
|
||||
en: bar
|
||||
|
@ -20,6 +23,9 @@ ERROR:
|
|||
invalid_value:
|
||||
en: Invalid value '#1' in key '#2'
|
||||
es: Valor '#1' inválido en clave '#2'
|
||||
invalid_cmd:
|
||||
en: Invalid cmd '#1'
|
||||
es: Comando '#1' inválido
|
||||
no_key:
|
||||
en: Key '#1' not found
|
||||
es: Clave '#1' no encontrada
|
||||
|
|
|
@ -8,13 +8,13 @@ Malformed YAML:
|
|||
id: fn1
|
||||
fail
|
||||
...
|
||||
1 + 2 + 3
|
||||
1 + 1
|
||||
|
||||
Empty YAML:
|
||||
|
||||
---
|
||||
...
|
||||
1 + 2 + 3
|
||||
1 + 1
|
||||
|
||||
Empty YAML and code:
|
||||
|
||||
|
@ -26,28 +26,28 @@ Misses id:
|
|||
---
|
||||
identifier: fn1
|
||||
...
|
||||
1 + 2 + 3
|
||||
1 + 1
|
||||
|
||||
Wrong id (doesn't starts with `%a`):
|
||||
|
||||
---
|
||||
id: 1
|
||||
...
|
||||
1 + 2 + 3
|
||||
1 + 1
|
||||
|
||||
Wrong id (doesn't follows with `[_%w]`):
|
||||
|
||||
---
|
||||
id: f-1
|
||||
...
|
||||
1 + 2 + 3
|
||||
1 + 1
|
||||
|
||||
Wrong id (more than 1 word):
|
||||
|
||||
---
|
||||
id: f n1
|
||||
...
|
||||
1 + 2 + 3
|
||||
1 + 1
|
||||
|
||||
Invalid value:
|
||||
|
||||
|
@ -55,7 +55,7 @@ Invalid value:
|
|||
id: fn1
|
||||
shift: "true"
|
||||
...
|
||||
Invalid shift value
|
||||
1 + 1
|
||||
|
||||
Invalid path:
|
||||
|
||||
|
@ -63,18 +63,31 @@ Invalid path:
|
|||
id: fn1
|
||||
dump: invalid/path.txt
|
||||
...
|
||||
Invalid dump value
|
||||
1 + 1
|
||||
|
||||
Extra key:
|
||||
|
||||
---
|
||||
id: fn1
|
||||
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:
|
||||
|
||||
|
@ -96,16 +109,6 @@ Invalid code:
|
|||
...
|
||||
false + false
|
||||
|
||||
Uknown cmd:
|
||||
|
||||
---
|
||||
id: fn1
|
||||
cmd: piton -E -X utf8
|
||||
args:
|
||||
n: 2
|
||||
...
|
||||
#n + #n
|
||||
|
||||
Infinite loop:
|
||||
|
||||
---
|
||||
|
|
|
@ -3,14 +3,23 @@
|
|||
---
|
||||
id: fn1
|
||||
...
|
||||
1 + 2 + 3
|
||||
1 + 1
|
||||
|
||||
Override:
|
||||
|
||||
---
|
||||
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
|
||||
|
||||
|
@ -19,22 +28,4 @@ Override:
|
|||
args:
|
||||
a: 1
|
||||
...
|
||||
7 + 8 + 9
|
||||
|
||||
# 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."
|
||||
1 + 1
|
||||
|
|
Loading…
Reference in New Issue