two small scripts to facilitate generating an annotated list of Lua scripts

This commit is contained in:
Paul Davis 2020-04-23 16:55:15 -06:00
parent e15b5c6e6b
commit 0719df9d21
2 changed files with 67 additions and 0 deletions

26
tools/luals Executable file
View File

@ -0,0 +1,26 @@
#!/usr/bin/lua5.3
function scripts (path)
local out = io.popen (
string.format ("find '%s' -maxdepth 1 -type f -iname \"[^_]*.lua\" | grep -ve s_", path)
)
return function()
for file in out:lines() do
return file
end
return nil
end
end
function ardour (v)
local newline = string.find (v['description'], '\n')
if newline then
io.write (string.format ("T:%s:N:%s:D:%s\n", v['type'], v['name'], string.sub (v['description'], 0, newline-1)))
else
io.write (string.format ("T:%s:N:%s:D:%s\n", v['type'], v['name'], v['description']))
end
end
for script in scripts ("share/scripts/") do
loadfile (script)()
end

41
tools/mkluacatalog Executable file
View File

@ -0,0 +1,41 @@
#!/bin/sh
tooldir=`dirname $0`
$tooldir/luals | awk '
BEGIN {
type_name_map["dsp"] = "DSP";
type_name_map["EditorAction"] = "Editor Actions";
type_name_map["EditorHook"] = "Editor Hooks";
type_name_map["SessionInit"] = "Session Initialization";
type_name_map["session"] = "Session";
}
/T:/ {
split ($0, a, ":");
if (a[2] in type_name_map) {
type_name = type_name_map[a[2]];
} else {
type_name = a[2];
}
types[scripts] = type_name;
type_names[type_name] = type_name;
names[scripts] = a[4];
descriptions[scripts] = a[6];
scripts++;
}
END {
tnc = asort (type_names);
for (tn = 1; tn <= tnc; ++tn) {
printf ("<h2>%s</h2>\n<dl>\n", type_names[tn]);
for (s = 1; s <= scripts; ++s) {
if (types[s] == type_names[tn]) {
printf ("<dt>%s</dt><dd>%s<dd>\n", names[s], descriptions[s]);
}
}
printf ("</dl>\n");
}
}
'